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 回答