Um CSV-Dateien mit dem richtigen numerischen Trennzeichen ('.' Oder ',') zu generieren, weil ich will, dass sie kompatibel mit Excel-Version auf dem Computer installiert sind, muss ich bekommen Dezimaltrennzeichen aus einem C++ - Programm.Erhalten Sie System Dezimaltrennzeichen mit STL
Mein Computer hat eine französische Version von Windows/Excel, daher ist das Dezimaltrennzeichen ','.
int main()
{
std::cout << std::use_facet< std::numpunct<char> >(std::cout.getloc()).decimal_point();
return 0;
}
.
Ausgänge, die nicht
erwartet wird, unter Verwendung von I Win32-API versucht:
int main()
{
TCHAR szSep[8];
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, szSep, 8);
std::cout << szSep;
}
Ausgänge ,
, die erwartet wird.
Gibt es eine Entsprechung zu dieser GetLocaleInfo
Funktion in STL, die in einem einfachen main
funktioniert?
[ 'std :: locale'] (http://en.cppreference.com/w/cpp/locale/locale) stellt diese Informationen auf tragbare Weise bereit. – user0042
@ user0042 während linkbasierte Antworten entmutigt werden, so ist die Antwort als Kommentar - ich denke, Sie sollten es migrieren. – UKMonkey
@UKMonkey Aber was OP verwendet, sieht so aus, als ob es tatsächlich auf den 'std :: locale'-Einstellungen basiert. Also habe ich das nicht als Antwort geschrieben. – user0042