我有一個奇怪的問題, 我用問題與函數getline和「奇怪的字符」
wifstream a("a.txt");
wstring line;
while (a.good()) //!a.eof() not helping
{
getline (a,line);
//...
wcout<<line<<endl;
}
和它工作得很好。對於這類 http://www.speedyshare.com/files/29833132/a.txt (抱歉鏈接txt文件,但它僅僅是80字節,所以它不應該是一個問題得到它,如果ic/p在SO換行丟失) 但是當我例如水(從http://en.wikipedia.org/wiki/UTF-16/UCS-2#Examples)添加到任何行是加載停止的行。我錯誤的印象是,getline將wstring作爲一個輸入,wifstream可以讓其他人咀嚼任何txt輸入... 有什麼方法可以讀取文件中的每一行,即使它包含時髦的字符?
嘗試'getline'。 –
由於某些原因只能匹配您的用戶名,wifstream默認爲8位字符。你必須使用std :: codecvt來告訴它識別其他的編碼。 –
@ kerrek \t getline(a,line); 失敗(g ++ 4.6,linux)。順便說一句,它應該從參數中獲取模板參數? –
NoSenseEtAl