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
這會破壞太多的遺留代碼。 –