将数据写入CFileDialog在C ++中创建的.txt文件中

时间:2010-05-06 16:22:03

标签: c++ visual-c++ mfc

我想把数据写入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();

2 个答案:

答案 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() )
...