1
我正在尝试读取一些简单的,具有几个数字的简单的unicode文件给int变量,即使经过几个小时的搜索,我也找不到合理的解决方案任务!在Visual C++中读取和解析简单的Unicode字符文件
我的文件是这样的:
1337 42 23
因为它是unicode的,它也有在开始为0xFF 0xFE的BOM标记。
我试过了wifstream和fwscanf(),但都被卡住了BOM,甚至在跳过BOM之后,两个函数都只读了“1”(他们对0x00字符感到困惑,理解unicode)。
所以我的问题是,你如何阅读和解析unicode Visual C++应用程序中的一个简单的unicode文件?
这是我的源(fwscanf版):
int _tmain(int argc, _TCHAR* argv[])
{
int x;
FILE * f = _wfopen(L"bla.txt", L"r+");
if (!f) return -1;
fseek(f, 2, SEEK_SET); // skip the BOM mark
fwscanf(f, L"%d", &x);
wprintf(L"Number read: %d\n", x);
fclose(f);
return 0;
}
,输出是:
Number read: 1
谢谢! Mat的解决方案也可以工作,但这个更清洁一点。我想知道为什么unicode不是unicode应用程序中的首选编码。然后,再次,这不是Visual Studio中第一件没有意义的事情。 – blade
这会破坏太多的遗留代码。 –