我使用 VS2008 编写了以下程序:
#include <fstream>
int main()
{
std::wofstream fout("myfile");
fout << L"Հայաստան Россия Österreich Ελλάδα भारत" << std::endl;
}
当我尝试编译它时,IDE 询问我是否想以 unicode 格式保存我的源文件,我说“是的,请”。
然后我运行程序,myfile 出现在我的项目文件夹中。我用记事本打开它,文件是空的。我记得记事本只支持 ASCII 数据。我用写字板打开它,它仍然是空的。最后,我内心的小天才敦促我查看文件大小,毫不奇怪它是 0 字节。所以我重建并重新运行程序,没有效果。最后,我决定在 StackOverflow 上向非常聪明的人询问我缺少什么,我在这里 :)
编辑:
在上述聪明人发表了一些意见后,我决定听从他们的建议,将程序改写成这样:
#include <fstream>
#include <iostream>
int main()
{
std::wofstream fout("myfile");
if(!fout.is_open())
{
std::cout << "Before: Not open...\n";
}
fout << L"Հայաստան Россия Österreich Ελλάδα भारत" << std::endl;
if(!fout.good())
{
std::cout << "After: Not good...\n";
}
}
建造它。跑了。而且......控制台清楚地显示,令我惊讶的是:“之后:不好......”。所以我编辑了我的帖子以提供新信息,并开始等待答案来解释为什么会这样以及我能做什么。:)