[英]MPFR, printf, decimal places, locales, file i/o problem
我的程序的用戶報告了讀取我的程序編寫的設置文件時遇到的問題。 我查看了有問題的設置文件,而不是使用句點“ .
”而不是小數點,它使用逗號“ ,
”。
我假設這與語言環境有關?
文件I / O使用fprintf
和mpfr_out_str
進行文件輸出,使用getline
結合atol
, atof
, mpfr_set_str
等進行文件輸入。
我在這里做什么? 即使機器的區域設置要使用逗號,我是否也應該強制程序始終使用句點? 如果是這樣,我應該從哪里開始?
編輯:我剛剛注意到,在命令行中指定要使用的設置文件而不是通過GUI加載該文件時,會發生此問題-這是否表示OP的機器上或我的代碼中存在問題?
您是否完全調用setlocale
? 如果沒有,我建議通過先前的setlocale(LC_ALL, "C")
建議將用於生成文件的語言環境嵌入設置文件中, 或強制所有設置文件I / O使用C語言環境。
另一種選擇是使用特定於語言環境的格式設置功能(在MSVC中帶有_l
后綴),並通過_create_locale(LC_ALL, "C")
顯式創建C語言環境。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.