用scanf函式檢驗輸入非法字元

2021-08-13 08:44:41 字數 603 閱讀 2468

標籤(空格分隔): c 雙學位高階語言程式設計 程式設計錯題 c輸入輸出

在規定輸入資料格式之後,scanf函式可以根據資料型別確定資料是否合法。如下面這個例題

根據scanf()的返回值判斷scanf()是否成功讀入了指定的資料項數,使程式在使用者輸入123a時,能輸出如下執行結果:

123a↙

input error!

輸入格式: "%d %d"

輸出格式:

如果成功讀入指定的資料項數,輸出格式為:"a = %d, b = %d\n" (注意:等號的兩邊各有乙個空格)

輸入非法資料,輸出格式為:"input error!"

由於scanf函式在碰到非法字元時,會停止當前的整個輸入,所以如果遇到非法字元,scanf函式不會輸入非法字元前面直接相連的其他字元。所以,如果我們輸入「123a」,前面的「123」也不會輸入。即資料仍取預設的隨機數。所以,正確的程式是

#include 

int main()

else

printf("a = %d, b = %d\n",a,b);

return

0;}

scanf函式的輸入

是不是也有人和我一樣,有時候輸入達不到自己預想結果呢?又很難找到自己的錯誤,覺得輸入的格式是對的,但是儲存卻不再在自己預想的位置。下面來講一下我關於字元和數字輸入的順序和方式的認識。首先我們來看第乙個 include includevoid main 是不是感覺是乙個非常簡單的程式。但有時候不懂也是...

Scanf函式的輸入問題

scanf 怎樣讀取輸入?scanf 開始讀取輸入以後,會在遇到的第乙個空白字元空格 blank 製表符 tab 或者換行符 newline 處停止讀取。假定使用了乙個 d說明符來讀取乙個整數。scanf 函式開始每次讀取乙個輸入字元,它跳過空白字元 空格 製表符和換行符 直到遇到乙個非空白字元。因...

C語言格式輸入函式scanf 詳解

scanf函式稱為格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指定的變數之中。scanf函式是乙個標準庫函式,它的函式原型在標頭檔案 stdio.h 中。與printf函式相同,c語言也允許在使用scanf函式之前不必包含stdio.h檔案。scanf函式的一般形式為 scanf 格式控制...