while((ch=getchar())!=EOFch != '\n');消除非法输入
生活随笔
收集整理的這篇文章主要介紹了
while((ch=getchar())!=EOFch != '\n');消除非法输入
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一個程序接收用戶輸入的兩個整數并打印
#include <stdio.h> int main() {int a, b;printf("請輸入兩個正整數:\n");scanf("%d", &a);scanf("%d", &b);printf("a = %d\nb = %d\n", a, b);return 0; }
如果輸入 123 和 456,程序可以正常運行;而如果輸入了123asd 和 456(實際上敲第一次回車后就結束了,根本沒機會輸入第二個值),那么第一個數被賦值為123,第二個數是一個垃圾值。
這是因為,scanf函數對輸入值進行轉換時,它只讀取需要的字符,a讀取了123;輸入行包含的最后一個值的剩余部分仍會留在那里,等待被讀取。然后asd被b讀取了,b就是一個垃圾值。
在兩個scanf之間插入一條語句while ((ch = getchar()) != EOF && ch != '\n');可以消除非法輸入。
總結
以上是生活随笔為你收集整理的while((ch=getchar())!=EOFch != '\n');消除非法输入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符常量在C和C++中的区别
- 下一篇: 向函数传递一维数组和已知大小的二维数组