我已經超負荷運營商>>
,我想從文件中讀取數據,即從文件中讀取預期
Store first;
std::wifstream in("file.txt");
in >> first;
下面是代碼不起作用的類型wstring
surface_area_
屬於double
file.txt的:
Euro AGD
1154,5
0
0
(我已成立波蘭$ LANG,這就是爲什麼有逗號,而不是一個點)
而我得到的是:
1 154,5
4 519 717 136
如果我在getline後添加is.ignore()
我得到:
154,5
0
我的猜測是getline
導致一個緩衝區混亂。如何使這項工作?
鑑於您使用wifstream,您的文本文件存儲在unicode? getline消耗endline字符,所以它可能會混淆 –
是的,文本文件存儲在unicode中。用±或者ć等波蘭字符朗讀單詞的效果很好。 – SantaXL
難道是空間是您的區域設置中的「千位分隔符」嗎?很難相信,但它是這樣表現的......這可能解釋了第一個輸出,但不是第二個輸出。我認爲有些地方的設置與文件格式混亂了。 –