學校一道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異...