C 檢測輸入是否是整數

2021-08-07 20:04:24 字數 1382 閱讀 7497

學校一道zz題但是檢測合法性輸入這裡費了好大功夫。

1、 猜**遊戲

編寫c++程式完成以下功能:

(1) 

假定有一件商品,程式用隨機數指定該商品的**(1-1000的整數);

(2) 

提示使用者猜**,並輸入:若使用者猜的**比商品**高或低,對使用者作出相應的提示;

(3) 

直到猜對為止,並給出提示。

(提示及要求:1,要求使用

c++的輸入輸出方式(

cin, cout

),不能使用c語言的

printf

等;2,注意檢查輸入的

目前想到的異常情況有:

1.分數

2.字元

3.數字字元混合

有的同學選擇的是先用字元儲存,然後逐個分析。這很直接也很簡單。

#include

#include

using namespace std;

bool isint(char s)

int main()

guess = atoi(input);

if (guess < price)

cout << "too low\n";

else if (guess > price)

cout << "too high\n";

}cout << "right!\n";

system("pause");

return 0;

}我的方法是:將要讀入的數字先設為0,如果輸入的是字元,cin會什麼都讀不進去,數字仍然為0,這樣不符合1-1000的範圍,就會進入錯誤提示。

注意cin是從緩衝區讀入,如果沒有清空緩衝區的操作,會不停地從有錯誤資訊的緩衝區讀入。需要cin.clear()。(這時緩衝區裡存的可能就是讀入的錯誤輸入吧…………不知道怎麼看啊…………)

檢測小數就用guess != (int)guess就好

還有乙個小問題是吞掉已有的錯誤輸入,試過cin.getline,getline都不行,可能是因為cin之後游標已經在下一行了。只能用getchar讀入資料(不知道為啥啊!)

**:#include

#include

using namespace std;

int main()

else if (guess < price)

cout << "too low\n"; 

else if (guess > price)

cout << "too high\n"; 

guess = 0;

}cout << "right!\n";

system("pause");

return 0;

}反正第二個方法純粹是自己想試試新的方法,結果發現一大堆問題以後的產物。

C 判斷輸入的是否是漢字

第一種方法 正規表示式 string text 是不是漢字 for int i 0 i text.length i console.readkey 第二種方法 漢字的 unicode 編碼範圍 string text 是不是漢字 char c text.tochararray for int i 0...

python檢測是否是質數

編寫python指令碼,使得實現以下功能 輸入乙個整數,通過指令碼判斷出輸入的這個數是否是質數,然後輸出是否是質數。指令碼如下圖所示 num input please input a integer i 2 while i num if num i 0 print is not a prime nu...

C Text輸入檢測是否為數字

int num if int.tryparse text1.text.trim out num 注 int.parse 是一種類容轉換 表示將數字內容的字串轉為int型別。如果字串為空,則丟擲argumentnullexception異常 如果字串內容不是數字,則丟擲formatexception異...