我想把数据写入CFileDialog在C ++中创建的.txt文件。
我面临的问题是,虽然没有构建错误,但下面的代码不起作用。由于某种原因无法找到由CFileDialog创建的.txt文件。代码怎么了?
将数据写入由CFileDialog在C ++中创建的.txt文件的有效方法是什么?
由于
CFileDialog dlg(FALSE, NULL, NULL, OFN_OVERWRITEPROMPT,
_T("My Data File (*.txt)|*.txt||"));
if(dlg.DoModal() != IDOK)
return;
CString filename = dlg.GetPathName();
ofstream outfile (filename);
int mydata = 10;
outfile << "my data:" << mydata << endl;
outfile.close();
答案 0 :(得分:1)
为什么在使用MFC时尝试使用ofstream?你可以使用CFile不是吗?您使用ofstream的具体原因是什么?
答案 1 :(得分:1)
在不知道某些设置的情况下,我只能做出合格的猜测。
E.g。取决于你如何编译它,UNICODE或!UNICODE CString的行为不同,即映射到etring的CStringA或CStringW。 CString的行为也有所不同,具体取决于MFC版本,在某些情况下,有一个运算符隐式转换为c字符串,有些则没有。
ofstream通常需要const char *作为参数,因此您可能希望将其更改为
ofstream outfile(filename.GetBuffer(255));
在那种情况下。
编辑:
您是否检查过是否可以打开文件?从上面的代码看,你似乎认为成功......
if ( outfile.is_open() )
...