2013-05-06 102 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()來檢查流的狀態。如果沒有設置錯誤位,則可以假設一切都很順利。