私のコードはここにあります:
//wstring filename = temp.name + L".txt";
wstring filename = L"hero2.txt";
//wofstream File(filename.c_str());
wofstream outputFile(L"temp.txt", ios::ate | ios::binary);
if (outputFile.fail()) windowmsg(1, LPCWSTR(L"Could not Save game"));
else windowmsg(1, LPCWSTR(L"Game Saved"));
wchar_t BOM = 0xFEFF;//Byte Order Mark character
outputFile << BOM;
outputFile << temp.name << endl;
outputFile << temp.lvl << endl;
outputFile << temp.HP <<endl;
outputFile << temp.minHP <<endl;
outputFile << temp.MP <<endl;
outputFile << temp.minMP <<endl;
outputFile << temp.ATK <<endl;
outputFile << temp.DEF <<endl;
outputFile << temp.mATK <<endl;
outputFile << temp.mDEF <<endl;
outputFile << temp.SPD <<endl;
outputFile << temp.exp <<endl;
outputFile << temp.exptonext <<endl;
outputFile << temp.gearnumber <<endl;
for (int count = 0 ; count < temp.gearnumber ; count++)
{
outputFile << temp.equip[count].name <<endl;
outputFile << temp.equip[count].type <<endl;
outputFile << temp.equip[count].ATK <<endl;
outputFile << temp.equip[count].DEF <<endl;
outputFile << temp.equip[count].mATK <<endl;
outputFile << temp.equip[count].mDEF <<endl;
outputFile << temp.equip[count].SPD <<endl;
}
私は多くのことを試しましたが、ここに記載するすべてを思い出すことはできません。fstream の 2 番目のパラメーターを に変更する ios::ate | ios::binary
など。空のテキスト ファイルを UTF に変換してみました。BOM の有無にかかわらず、変数を記述する前に C++ コードで BOM を記述してみました。私はいつも空のファイルを取得します。
プロジェクトのエンコーディングは Unicode 文字セットです。注意として、ファイルのエンコーディングは気にしません。英語の文字テキストのみをファイルに書き込みます。ファイルが書き込まれる限り、私は満足しています。