写入文件时检查错误

时间:2013-05-06 14:06:28

标签: c++ file

我有

ofstream myfile;
myfile.open(filename,ios::out | ios::app);
if(myfile.good()){ do smtg};

myfile.write(taskToWrite->buffer,taskToWrite->length);

无论如何都要检查写入功能是否不起作用? 我之前正在检查,好(),但如果我在写作时出错,我该怎么检查呢? 我无法理解函数返回的内容。

2 个答案:

答案 0 :(得分:2)

write函数返回流本身。因此,在您的情况下,它将返回对myfile的引用。流类型可转换为bool以检查其失败状态。所以你可以简单地使用它:

if (myfile.write(taskToWrite->buffer,taskToWrite->length)) {
  // Success
}

答案 1 :(得分:0)

您可以使用std::ofstream::good()来检查流的状态。如果没有设置任何错误位,您可以假设一切顺利。