1樓:匿名使用者
風輕的做法不太完全,在輸入11a22時,會將a之後的捨棄而認為是正確的整形11.
fun()
ch[++i] = (char)getchar();
}sscanf(ch, "%d", &input);
printf("%d",input);
fflush(stdin);
return input;
}11a11 error!
1111 1111 返回1111
2樓:匿名使用者
c語言中大部分自帶的方法都有返回值,像scanf方法如果輸入正確的話,它會返回一個正整數,所以你可以通過它來判斷,如果輸入不正確的話它返回是0,你就可以通過這個判斷是否為非法輸入。
scanf()函式有返回值且為int型。
scanf()函式返回的值為:正確按指定格式輸入變數的個數;也即能正確接收到值的變數個數。
scanf("%d%d", &a, &b);
如果a和b都被成功讀入,那麼scanf的返回值就是2如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為eof。
3樓:雲淡風輕
int n;
while(scanf("%d",&n)==0)
c語言程式設計問題,求高手解答遇到輸入非法字元時,怎麼處理。
4樓:
#include
#include
#include
#include "regex.h"
const int max_len = 1000;
/*去掉字串兩端的空格*/
char * trimstring(char guessstring)
/*尾部空格*/
while( rear >= 0 &&
(guessstring[rear] == ' ' || guessstring[rear] == ' ' )
)for(i = head ,k = 0; i <= rear ; i++ , k++)
result[k] = '\0';
return result;}/*
提取字串中的【正整數】。
如果是恰好包含【一個正整數】的字串(正數前後可以有任意個空格,正數可以有多餘的前導0),則返回這個正數;
如果是一個空串,則返回 -1
如果包含非數字字元,則返回-2
*/int transstringtonum(char guessstring)
// 檢查是否有非數字字元
for(i = 0 ; trimguessstring[i] != '\0' ; i ++)
}// 字串轉換成數字
for(i = 0 ,num = 0 ; trimguessstring[i] != '\0' ; i++)
return num;
}int main()
if(guessnum == -2 )
if(guessnum>num)
else if(guessnumnum) else if(guessnum 就知道錯了。這時if(guessnum = num)永遠都會被執行 因為這是一個【賦值語句】而不是【邏輯語句】,且 num 的值是恆正的 */else if(guessnum == num) }printf("do you want to continue(y/n or y/n)?"); /* 用 getch() 取代scanf ,不易出錯 因為 getch()只能輸入一個字元 而 scanf 可以讀入多個字元,而且要回車 */fflush(stdin); reply = getch(); }while((toupper(reply)=='y')); printf("the game is over!\n"); return 0;}/* 輸入合法數字示例(數字包含在一對""中): "123" " 123" "123 " " 123 " " 0000123 " 上面的結果都是輸入正數: 123*/ 5樓:軍神再現 可以採用如下語句 while((scanf("%d",&x))==1) {}只有輸入一個數字時,才進入主體語句 c語言中大部分自帶的方法都有返回值,像scanf方法如果輸入正確的話,它會返回一個正整數,所以你可以通過它來判斷,如果輸入不正確的話它返回是0,你就可以通過這個判斷是否為非法輸入。scanf 函式有返回值且為int型。scanf 函式返回的值為 正確按指定格式輸入變數的個數 也即能正確接收到值的變數... 一 工欲善其事,必先利其器 這裡介紹幾個學習c語言必備的裝置和書籍 a 開發環境 例如turbo c 2.0,這個曾經佔據了dos時代開發程式的大半個江山。但是現在windows時代,用turbo c有感覺不方面,編輯程式起來很吃力,並且拖放,更沒有函式變數自動感應功能,查詢參考資料也不方便。建議使... include int main int a 17 int i for i 0 i 17 i scanf d a i return 0 函式功能 把格式化的資料寫入某個字串 函式原型 int sprintf char buffer,const char format argument 返回值 字串長...C語言中如何控制非法輸入 c語言如何限制非法輸入
關於C語言和程式設計,用C語言程式設計和用C 語言程式設計區別大嗎?
c語言中如何依次輸入陣列中元素,C語言中如何依次輸入陣列中元素