W projekcie, nad którym obecnie pracuję, łączę się z zastrzeżoną biblioteką dynamiczną. Po uruchomieniu funkcji bibliotecznej initialize
zmienia się zachowanie rejestrowania i drukowania numerów.Czy chcesz wyłączyć przecinki w cout?
Przecinki zostały wstawione co trzy miejsca po przecinku. To znaczy.
cout << 123456789 << endl
służy do wydrukowania 123456789
i teraz drukuje 123,456,789
. To jest okropnie denerwujące, ponieważ takie zachowanie nie jest tym, czego chcę.
Po pewnych badaniach podejrzewam, że problem z lokalizacją. Próbowałem za pomocą tego wiersza kodu po wywołaniu initialize
funkcję
setlocale(LC_ALL,"C");
myślenia może zresetować mojego lokalnego do domyślnego; ale bez skutku. Przecinki pozostają!
Czego mi brakuje?
Opublikowałem pokrewną obserwację na pytanie here.
który działał świetnie w przypadku zmiennych lokalnych w mojej wersji głównej! Jednak uruchamiany plik wykonywalny jest również powiązany z ponad 10 niestandardowymi bibliotekami współdzielonymi. Błąd przecinania rozprzestrzenia się niestety również w bibliotekach współdzielonych "stringstreams" i "couts". Czy istnieje lepszy sposób globalnego ustawienia lokalnego, zamiast przechodzenia przez cały kod źródłowy dla moich bibliotek i dodawania do 'imbue (std :: locale (" C "))' dla każdego strumienia struny jaki znajduję? – dinkelk
Edytowałem pytanie, aby było bardziej szczegółowe. – dinkelk