VC++用ofstream 写数据回TXT文件里,请问错哪了

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:44:59
C/C++ code
void CUpdataDlg::OnBnClickedButtonUpdata()
{

CString str1,str2,str3;
GetDlgItemText(IDC_EDIT1,str1);
GetDlgItemText(IDC_EDIT2,str2);
GetDlgItemText(IDC_EDIT3,str3);

ofstream ofs("");
ofs<<str1<<endl;
ofs<<str2<<endl;
ofs<<str3<<endl;
ofs.close();

提取三个EDIT的值,并按行保存回ButtonName.txt
ButtonName.txt里的数据也是3行.
覆盖率掉原来的3行.
我写的显示出来的是
003FEEE8
003FF778
003FF7D0
是怎么回事啊.我刚学,很多不懂,请大家帮忙~~谢谢了

}
加GetBuffer 还是不行~~输出的还是类似003FEEE8的~

ofstream ofs("ButtonName.txt");
ofs<<str1.GetBuffer()<<endl;
ofs<<str2.GetBuffer()<<endl;
ofs<<str3.GetBuffer()<<endl;
ofs.close();
看上去,你的str1、str2、str3都是宽字符版本的了。对于宽字符版本的字符串,我也不明白为什么ofstream和wofstream都写入一个4字节的整数,看上去像地址。至于解决方法,你可以这样做:
wofstream ofs("ButtonNametest.txt");
wstring ws;
ws=str1.GetBuffer();
ofs<<ws<<endl;

ws=str2.GetBuffer();
ofs<<ws<<endl;

ws=str3.GetBuffer();
ofs<<ws<<endl;
ofs.close();

你转换为CStrinA类型就OK了,
加上一下代码:
CStrinA stra1(str1);
CStrinA stra2(str2);
CStrinA stra3(str3);
输出的时候
ofs<<stra1<<endl;
..........
....
我也是在CSDN上看到的!

在可视化编辑里(resourceview-> dialog),右键点编辑框,选建立类向导,在选择member variables标签双击列表中edit控件,给他设个CString量起个名字,会出现在***Dlg类成员中
使用时updatedata(true),编辑框