2013-03-24 25 views
2

我想是這樣的:如何檢查從文件讀入的內容是否爲有效整數?

int integer; 

cin >> integer; 

if(!integer) {//do something} 

,但顯然這是一個問題,如果整數= 0

是否有檢查,如果事情是一個整數,更有效的方法?

+0

如果直接得到一個整數,如果這就是你得到的,它是一個整數已經是有效的。如果你得到一個文本字符串,它可能包含或不包含整數的文本表示,那麼你可以驗證它,標準庫中有一些功能可以用於這個目的。 – 2013-03-24 23:28:17

回答

5

使用failoperator boolbasic_ios派生的對象:

if(cin.fail()) {//do something} 
+0

太棒了!謝謝! – 2013-03-24 23:39:11

1

使用std::stoi()。如果字符串不是整數值,你會得到一個異常。

+0

如果你使用'std :: stoi',你可能應該閱讀http://stackoverflow.com/questions/11598990/is-stdstoi-actually-safe-to-use – jamesdlin 2013-03-25 00:12:27

0

請查找fail bit - 它會告訴你什麼地方出了不對勁

相關問題