在vs2008中使用unicode编译
如何使用wofstream将许多语言字符输出到C ++文件中?
我可以用C代码做到这一点,例如
FILE *out;
if( (out = _wfopen( L"test.txt", L"wb" )) != NULL )
{
fwprintf(out,L"test\r\n");
fwprintf(out,L"наказание\r\n");
fwprintf(out,L"ウェブ全体から検索\r\n");
}
当我打开文件时,这是完全正确的,但是在C ++程序下,我得到的只是第一行,并且我尝试了locale :: global(locale(“”));结果相同。
wofstream MyOutputStream(L"test.txt");
if(!MyOutputStream)
{
AfxMessageBox(L"Error opening file");
return;
}
MyOutputStream << L"test\r\n";
MyOutputStream << L"наказание\r\n";
MyOutputStream << L"ウェブ全体から検索\r\n";
MyOutputStream.close();
并且我尝试以相同的结果插入此:
std::locale mylocale("");
MyOutputStream.imbue(mylocale);
最佳答案
解决了...这是:-
wofstream MyOutputStream(L"c:\\test2.txt", ios_base::binary);
wchar_t buffer1[128];
MyOutputStream.rdbuf()->pubsetbuf(buffer1, 128);
MyOutputStream.put(0xFEFF);
MyOutputStream << L"test\r\n";
MyOutputStream << L"наказание\r\n";
MyOutputStream << L"ウェブ全体から検索\r\n";
关于c++ - unicode程序中的c++ wofstream问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30900775/