我有一個函數(addShape
)根據它獲得的id
從文件中讀取整數。它獲取id
和流is
作爲參數。由於某種原因,在閱讀最後一行後,我得到std::ios_base::failure
。爲什麼這個文件讀取代碼會產生異常?
while (is >> id)
addShape(id, is, false);
我認爲這是從文件中讀取最安全的方法。
這是我的初始化流:
fstream is;
int id = 0;
string filename;
char answer = NULL;
// set exceptions
is.exceptions(fstream::failbit | fstream::badbit);
try { is.open(filename); }
catch (ifstream::failure e)
{
clrscr();
cout << "There was an error opening " << filename << endl;
waitForEscape();
is.close();
return;
}
你能告訴我們你是如何初始化'is'流和'addShape'的代碼嗎?您可能在流對象上啓用了異常。 – templatetypedef