我想是這樣的:如何檢查從文件讀入的內容是否爲有效整數?
int integer;
cin >> integer;
if(!integer) {//do something}
,但顯然這是一個問題,如果整數= 0
是否有檢查,如果事情是一個整數,更有效的方法?
我想是這樣的:如何檢查從文件讀入的內容是否爲有效整數?
int integer;
cin >> integer;
if(!integer) {//do something}
,但顯然這是一個問題,如果整數= 0
是否有檢查,如果事情是一個整數,更有效的方法?
使用fail
或operator bool
在basic_ios
派生的對象:
if(cin.fail()) {//do something}
太棒了!謝謝! – 2013-03-24 23:39:11
使用std::stoi()。如果字符串不是整數值,你會得到一個異常。
如果你使用'std :: stoi',你可能應該閱讀http://stackoverflow.com/questions/11598990/is-stdstoi-actually-safe-to-use – jamesdlin 2013-03-25 00:12:27
請查找fail bit - 它會告訴你什麼地方出了不對勁
如果直接得到一個整數,如果這就是你得到的,它是一個整數已經是有效的。如果你得到一個文本字符串,它可能包含或不包含整數的文本表示,那麼你可以驗證它,標準庫中有一些功能可以用於這個目的。 – 2013-03-24 23:28:17