0

C++ MFC アプリケーションを開発しています (Visual Studio 2010 を使用)

ファイルにデータを保存するためのこのコードを作成しました(コードはボタンクリックイベントの中にあります)

wfstream myfile;
myfile.open("ttt.txt");
if(!myfile)
    MessageBox(L"Problem");
else
{
    myfile <<"arash";
    myfile << ";program";
    myfile << ";test";
    myfile << ";a";
    MessageBox(L"OK");
myfile.close();

}

ただし、出力ファイルは次のとおりです。

arash;program;test;aحححححححححح

そして、どこححححححححححから来たのかわからない?!!!

私も試しました

myfile << _T("arash");
myfile << _T(";program");
myfile << _T(";test");
myfile << _T(";a");

しかし、それは何も変わっていません

どうすればいいですか?

ありがとう

4

2 に答える 2

1

ワイド文字ファイルであるため、ファイル出力にワイド文字文字列を指定する必要があります。

myfile << L"arash";
myfile << L";program";
myfile << L";test";
myfile << L";a";

_Tマクロが機能しなかった理由は、おそらく_UNICODE定義していないためですか?

于 2013-01-15T09:45:46.863 に答える
0

でワイド文字リテラルを提供することに加えてL"something"、これはワイド文字ストリームであるため行う必要がありますが、ファイルには以前の操作からのジャンク データが既に含まれている可能性があります。

ファイルに書き込む前に、ファイルを切り詰める(既存のデータをすべて削除する)必要があるようです。あなたはそれを行うことができます

myfile.open("ttt.txt", ios_base::in | ios_base::out | ios_base::trunc);
于 2013-01-15T09:50:35.637 に答える