Vorrei capire come e se serve saper gestire la possibilita' che i numeri possano essere rappresentati in modo diverso da sistema a sistema.

Faccio un esempio: uso windows10, impostato con "Usa lingua di visualizzazione di Windows", che poi è italiano, e nel formato dei numeri ho impostato la virgola per il separatore decimale e il punto come simbolo di raggruppamento cifre.

Ora, se col tastierino numerico premo il "punto", in blocco note viene rappresentato come un punto, in Writer e Calc di Libre Office viene rappresentato come una virgola.

Quando uso i programmini fatti da me di tipo console, il "punto" del tastierino numerico viene rapresentato come punto (nella finestra in cui 'gira' il programma).

Ho letto nella documentazione che C++ permette di interagire con questi aspetti attraverso std::locale.

Da quello che ho capito fino ad ora e' che un programma C++ ha un suo formato standard, ad esempio, il punto come separatore decimale.

Il problema e' quindi duplice:


  • e' necessario sapere come il sistema e' impostato per questi aspetti?
  • se e' necessario saperlo, come si fa all'inizio del programma a leggere le impostazioni del computer su cui sta girando e usarle al posto di quelle standard del C++;
  • cosa comporta la possibilita' di opzioni diverse per i formati numeri nel caso di scrittura / lettura di numeri da file di testo?;
  • infine, sistema operativi diversi comportano soluzioni diverse al problema?


Molto probabilmente non esiste una rispostina semplice al/ai problema/i posto/i, chiedo solo qualche input/spunto per poi approfondire la questione personalmente e poi tornare con domande piu' specifiche.


Grazie