我正在编写一个MFC程序,其中包含一个对话框和一个“导出”按钮,该按钮将把所有输入的数据导出到一个.txt文件(在某个时候我想将其更改为.msg文件...但这是另一天的问题)。
然而,当我点击按钮时,它会创建文件,但不会在文件中写入任何内容。为了测试,我删掉了除了一个简单的字面字符串以外的所有内容,甚至那个也没有打印出来。这是事件的当前代码:myfile.flush()语句是我尝试向文件打印循环时留下的。
有什么可能导致这种情况的吗?我已经试了几个小时了,尝试使用 myfile.write() 函数等不同的方法。我在这里、Reddit和Google上搜索了很多,想知道为什么它没有写入。
感谢您的帮助。
编辑:
好的,按照我所做的方式调用 myfile 构造函数,包括文件名,就已经完成了打开文件的操作。
谢谢您的帮助!
然而,当我点击按钮时,它会创建文件,但不会在文件中写入任何内容。为了测试,我删掉了除了一个简单的字面字符串以外的所有内容,甚至那个也没有打印出来。这是事件的当前代码:myfile.flush()语句是我尝试向文件打印循环时留下的。
void CEHDAHTTimerDlg::OnBnClickedExport()
{
// in this function, we want to export the items to a text file
std::ofstream myfile("TodayTime.txt");
myfile.open("TodayTime.txt");
if (myfile.is_open())
{
myfile << "The average call time is ";
myfile.flush();
myfile.close();
}
else
{
SetDlgItemText(IDC_EXPORT, L"Export Unsuccessful! -- No File");
}
}
有什么可能导致这种情况的吗?我已经试了几个小时了,尝试使用 myfile.write() 函数等不同的方法。我在这里、Reddit和Google上搜索了很多,想知道为什么它没有写入。
感谢您的帮助。
编辑:
好的,按照我所做的方式调用 myfile 构造函数,包括文件名,就已经完成了打开文件的操作。
谢谢您的帮助!
myfile.open()
会为您创建文件(或者在您创建ofstream
对象时)。我认为myfile.is_open()
不是正确的条件函数。请研究如何检查文件是否打开并尝试其他函数。也许!myfile.fail()
可以起作用。 - Khalil Khalafif
块? - PaulMcKenzieofstream
的销毁将在函数退出时发生并关闭文件。此外,还没有测试来确保写入成功。 - user4581301