2012-07-29 52 views
1

題目全是問題。 我正在做一個計算器,我顯然需要輸入。我使用cin >>函數,但我想知道是否有方法來測試輸入以查明它是否是一個數字。 如果我輸入任何不是數字的東西,程序就會崩潰。有內置的函數/運算符嗎?請幫忙!有沒有方法可以測試輸入是否是C++中的數字?

+0

的[如何將數字轉換爲字符串,反之亦然在C++]可能重複(http://stackoverflow.com/questions/5290089/how-to-convert- a-number-to-string-and-vice-in-c) – KillianDS 2012-07-29 09:22:45

+1

@KillianDS它不是關於「將數字轉換爲字符串」,而是「檢查輸入是否是數字」 – 2012-07-29 09:25:29

+1

@rafl:您無法檢查如果它是一個沒有至少嘗試轉換的數字。大多數轉換函數提供了一個「失敗」機制,您可以在這裏使用。根本不需要重新發明輪子。 – KillianDS 2012-07-29 09:26:16

回答

3

輸入運營商將只讀取到一個整數,如果輸入一些。否則它會將字符留在輸入緩衝區中。

嘗試這樣的事情

int i; 
if (cin >> i) 
{ 
    // input was a number 
} 
else 
{ 
    // input failed 
} 
0

atoisscanf是你的朋友,或者只是比較,如果輸入的charCode爲在「0」內 - 「9」的範圍

+1

你應該在你的答案中加入一些例子。 – 2012-07-29 09:12:18

相關問題