1樓:續甫年恨桃
c語言中大部分自帶的方法都有返回值,像scanf方法如果輸入正確的話,它會返回一個正整數,所以你可以通過它來判斷,如果輸入不正確的話它返回是0,你就可以通過這個判斷是否為非法輸入。
scanf()函式有返回值且為int型。
scanf()函式返回的值為:正確按指定格式輸入變數的個數;也即能正確接收到值的變數個數。
scanf("%d%d",&a,&b);
如果a和b都被成功讀入,那麼scanf的返回值就是2如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end
offile,返回值為eof。
2樓:
可以通過死迴圈的方式, 一直等待使用者輸入, 然後對使用者的輸入進行檢查, 如果使用者輸入滿足你要的格式, 那麼退出迴圈, 接著往下執行, 如果不滿足, 那麼提示輸入錯誤, 並且要求使用者重新輸入, 直到使用者輸入對才往下執行。
命令列選單介面就是這麼做的。
3樓:網友
提問者是想知道怎麼判斷吧? c語言中大部分自帶的方法都有返回值,像scanf方法如果輸入正確的話,它會返回 1,所以你可以通過它來判斷,如果輸入不是數字的話它返回就不是1了,你就可以通過這個控制,就不會出現死迴圈。
g1: if(scanf("%d",&a)!=1)
有別的問題也可以找我,我也在學c語言,呵呵。
4樓:網友
主要是輸入流沒有清除。
可以用fflush()清空。
輸入\輸出。
流。以下是**:
while(1)
5樓:死灰冷復燃
我也不清楚,沒學過。
c語言如何限制非法輸入
c語言程式設計,抵禦非法輸入,第一次非法輸入時,第二次怎麼就不能輸入了?
6樓:田風子風
因為被回車符吃掉啦,加一行**。
d=scanf("%d%d",&m,&n);/下面加上。
fflush(stdin);
c語言如何清除非法字元,或者說對使用者非法輸入的處理,程式結果總是不對,總是n =0;
c語言程式設計問題,求高手解答遇到輸入非法字元時,怎麼處理。
7樓:軍神再現
可以採用如下語句。
while((scanf("%d",&x))=1)
{}只有輸入一個數字時,才進入主體語句。
怎樣檢查c語言輸入資料的合法性?
8樓:12345額時代
1、找到安裝好的c-free5,雙擊開啟,進入c-free5的主介面。
2、進入主介面後,點選左上角的空白頁選項,新建一個空白的工程,用來實現c語言的輸入。
3、新頁新建完成後,在前幾行打入c語言主函式的基本框架,框架打好後即可呼叫輸入函式。
4、這裡的輸入函式以scanf為例,首先定義一個整型變數,隨機命名這裡以a為例。
5、變數定義完成後,在呼叫scanf函式,使用賦值語句將scanf函式所得到的值給a。
6、語句完成後,點選最上方的執行按鈕即可執行這個程式了。
9樓:匿名使用者
如果是整數的話,這麼判斷就行:
float num;
int num2
scanf("%f",&num);
if(num==(int)num) num2=(int)num;//如果輸入正確,將整數儲存到num2中。
else printf("eof");
10樓:
用 if (scanf("%d",&x) !1) 判斷。
scanf,fscanf 送返 正確地讀入的數的個數,例如:
---int x;
if (scanf("%d",&x) !1)
11樓:匿名使用者
通過scanf函式的返回值來驗證輸入的合法性。
scanf()函式接收輸入資料時,遇以下情況結束一個資料的輸入:(不是結束該scanf函式,scanf函式僅在每一個資料域均有資料,並按回車後結束)。
① 遇空格、「回車」、「跳格」鍵。
② 遇寬度結束。
③ 遇非法輸入。
scanf()函式返回成功賦值的資料項數,讀到檔案末尾出錯時則返回eof。
如:scanf("%d %d",&a,&b);
如果a和b都被成功讀入,那麼scanf的返回值就是2如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為eof。
且返回值為int型。
c語言中怎樣限制輸入值為字串或數字
12樓:不忘濡心
%d可以輸出int型別的整形數字。
%f可以輸出float型別的浮點型也就是小數數字%c可以輸出字元比如英文字母、漢字、特殊字元和數字還有%lf、%ld等可以去了解一下。
c語言中用scanf控制輸入,printf控制輸出。
比如我定義了一個變數int a;
如果對a進行賦值,就用到了scanf,具體語句:scanf("%d",&a);
如果要對a進行輸出,就要用到printf,具體語句:printf("%d",a);
觀察上面兩個語句,共同點都是有個引號引號裡面是格式控制字元,這個要和你前面定義的int保持一致(如果是float a,那麼就用%f)。不同的是scanf後面用&a,這個&可以讀作and,是地址符,輸入的時候必須在變數前面加上(如果不加,編譯不會出錯但是執行的時候會猶豫記憶體分配等問題而強制退出等),printf直接寫變數就可以了。
13樓:我透明_的
printf("%s") 字串;printf(「%c」);字元。
printf(「%d」) 整數 ;printf(「%f」);小數。
關於限制輸入要怎樣用c語言寫
14樓:匿名使用者
對獲取到的輸入內容進行判斷,滿足1到3的就儲存,不滿足就用輸入語句提示出錯,請重新輸入。
思路供參考。
15樓:打醬優滴豬
彈出提示?你是寫視窗程式嗎?如果是的話,就用資料交換技術,先取得輸入的內容,然後判斷是否合格,偽**如下:
if(a>=1 &&a<=3)else
控制檯的也是一樣,不過更簡單,取到輸入內容,如果不合格就printf錯誤提示。
16樓:匿名使用者
int number;/*定義需要輸入的數字*/int mark=0;/*輸入是否正確的標誌*/while(!mark) /直到輸入正確退出迴圈,假如不需要提示錯誤後還要輸入,可以去掉迴圈*/}
c語言有關非法輸入的問題
17樓:想愛你而又不能
如果flag為0,那就是輸入錯誤,因為scanf的返回值是正確輸入的個數。
18樓:匿名使用者
你所設定輸入的分隔符是什麼,你執行程式就要輸入相對應的符號作為分隔符要不然就會報錯的。如果改為其它輸你就改變定義變數型別和相對應的格式輸入符就行了。
c語言中如何依次輸入陣列中元素,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語言程式設計問題,求高手解答遇到輸入非法字元時,怎麼處理。
風輕的做法不太完全,在輸入11a22時,會將a之後的捨棄而認為是正確的整形11.fun ch i char getchar sscanf ch,d input printf d input fflush stdin return input 11a11 error 1111 1111 返回1111 ...
c語言中變數的平方怎麼輸入,C語言中變數的平方怎麼輸入
天雲一號 在c 中,變數a的平方可以有2種方式進行輸入 1 直接本身相乘a a 2 用函式pow進行求變數a的平方,即pow a,2 注 函式pow的用法如下 函式格式 double pow double x,double y 功 能 計算x的y次冪 返 回 值 計算結果 當使用pow函式時,需要將...