VS2008 を使用して次のプログラムを作成しました。
#include <fstream>
int main()
{
std::wofstream fout("myfile");
fout << L"Հայաստան Россия Österreich Ελλάδα भारत" << std::endl;
}
コンパイルしようとすると、ソース ファイルを Unicode で保存するかどうかを IDE が尋ねてきたので、「はい、どうぞ」と答えました。
次に、プログラムを実行すると、プロジェクトのフォルダーに 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";
}
}
それを構築しました。実行しました。そして...コンソールには、驚いたことに、「後:良くない...」とはっきりと表示されました。そこで、投稿を編集して新しい情報を提供し、その理由と私に何ができるかを説明する回答を待ち始めました. :)