【发布时间】:2010-03-17 16:57:08
【问题描述】:
这甚至可能吗?我一直在尝试读取一个包含俄语的简单文件,但它显然不起作用。
我调用了 file.imbue(loc)(此时,loc 是正确的,Russian_Russia.1251)。
buf 的类型为 basic_string
我使用 basic_ifstream
这一切都与英文字符完美配合......
while (file >> ch)
{
if(isalnum(ch, loc))
{
buf += ch;
}
else if(!buf.empty())
{
// Do stuff with buf.
buf.clear();
}
}
我不明白为什么我在阅读俄语字符时会收到垃圾。 (例如,如果文件包含 хеы хеы хеы,我会得到“яюE”、5(正方形)、K(正方形)等...
【问题讨论】:
-
哦,C++ 中可爱的有问题的流 :) 也许这可以给你一个提示:stackoverflow.com/questions/1509277/…
-
那么真的没有办法允许使用模板化流吗?在我看来,这似乎太复杂了。根本没有办法让流读取特定类型的字符?
-
首先,“хеы хеы хеы”绝对不是俄语(尽管其中包含俄语字符)。然后,您能否使您的示例“完整”并提供指向示例文件的链接(在这种情况下,我很乐意为您提供帮助)。
-
啊,NU UDACHI TOGDA,然后:))