2013-05-06 69 views
1

检查错误,同时写入文件

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

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

反正是有检查写功能不起作用? 我以前用good()检查过,但如果写入时出错,我该如何检查? 我不明白函数返回什么。

回答

2

write函数返回流本身。所以在你的情况下,它会返回对myfile的引用。流类型可转换为bool以检查其错误状态。所以你可以简单地使用这个:

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

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