gpt4 book ai didi

unicode程序中的c++ wofstream问题

转载 作者:行者123 更新时间:2023-11-28 06:12:52 24 4
gpt4 key购买 nike

在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";

关于unicode程序中的c++ wofstream问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30900775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com