我有一个奇怪的问题, 我用问题与函数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