0
我正在從文本文件中讀取數據,並且存在需要從文件中讀取的double值。現在的問題是,如果雙重值無效,例如「!@#$%^ & *」,那麼我希望我的程序給出異常,以便我可以處理它。這是我的代碼在C++中轉換爲double時處理異常
void Employee::read(istream &is) {
try{
is.get(name, 30);
is >> salary;
char c;
while(is.peek()=='\n')
is.get(c);
}
catch(exception e){
}
}
你可以嘗試將它輸入到一個字符串中,如果你有C++ 11,可以使用'stod'。這會拋出一個'std :: invalid_argument'異常。 – chris
我終於通過設置istream的異常位來工作,它是isdream \t 'is.exceptions(ios :: failbit | ios :: badbit); \t //設置ifstream拋出壞數據異常 –
有趣的是,我從來不知道你可以做到這一點。您可以將它作爲答案發布並接受它。 – chris