我不熟悉c ++流的东西。所以我练习流输入,输出。 当然,fstream也是如此。
读取和写入基于mutibyte字符编码的文件并不是问题,但是 当像utf16这样广泛的角色时,我陷入了困境。
这是我的代码和测试文件。
vector<wstring> strings;
wifstream ifs(L"inputtxt/utf16.txt", std::wifstream::binary | std::wifstream::in);
wchar_t buff[1024] = {0,};
while (!ifs.fail()){
ifs.getline(buff, 1024);
wstring str(buff);
strings.push_back(str);
}
ifs.close();
wofstream ofs(L"outputtxt/utf16.txt", std::wofstream::out | std::wifstream::binary);
vector<wstring>::iterator it = strings.begin();
for (; it != strings.end(); it++ ) {
ofs.write(it->c_str(), it->length());
ofs.put(L'\n');
}
ofs.close();
这是以utf16编码的测试文件。
what are you doing?
what are you doing?
有什么问题?我该如何正确地做到这一点?
请给我一个提示。感谢。