『壹』 c語言中數據輸入錯誤了如何提示輸入錯誤並實現要求重新輸入
可以使用清理輸入流fflush(stdin);這個原因是因為錯誤輸入的內容會保留在輸入流,下一次判斷會從輸入流開始讀取,因為錯誤輸入的內容還在,所以直接判斷錯誤,繼續循環。
但有些編譯器並不支持清理輸入流。所以我們這時需要用手動輸入讓其清除。使用getchar();讓其接收錯誤的字元。但這樣就會變成這樣,如果輸入多個錯誤就會出現多個次數的循環;直至沒有錯誤輸入;這樣如果循環內容多,所消耗的資源也就多了。
所以可以使用while()來執行裡面的消除字元,但如果直接這樣while(getchar())就會進入無限循環,所以可以讓其接收一個終止條件,每次輸入完都會按回車,那就讓其接收' '換行符終止自己的循環。
(1)重新輸入直至輸入正確為止c語言擴展閱讀
C語言從鍵盤輸入數據
程序是人機交互的媒介,有輸出必然也有輸入。在C語言中,有多個函數可以從鍵盤獲得用戶輸入兄州:
scanf():和 printf() 類似,scanf() 可以輸入多種類型的數據。
getchar()、getche()、getch():這三個函數都用於輸入單個字元。簡沖
gets():獲取一行數據,並作為字元串處理。
scanf() 是最靈活、最復雜、最常用的輸入函數,但它不能完全取代其他函數,大家都要有所了解。scanf 是 scan format 的縮寫,意思是格式化掃描,也就是從鍵盤獲得用戶輸入。
gets() 會讀取用戶輸入的整行內容,包括空格。而 scanf() 遇到空格就結束羨咐蔽讀取,也就是說,使用 scanf() 讀取的字元串中永遠不會包含空格。
『貳』 c語言題 :提示用戶輸入整數判斷奇偶,只要讀入不成功讓用戶重復輸入,直到輸入正確為止求解
#include<stdio.h>
void main()
{double x;
printf("請輸入一個整數:\n");
scanf("%d",&x);
while(!flag)
{
if((int)x==x){
if(n%2==0)
printf("輸入的數為偶數\n");
else
printf("輸入的數為偶數\n");
flag=1;
}
else
{
printf("請輸入一個整數:\n");
scanf("%d",&interger);
flag=0
}
}
}
『叄』 C語言怎麼實現輸錯了 重新輸入
可以設置一個while循環在其體內輸入數據,經判斷輸入正確則跳出循環,否則提示重新輸入,直到輸入正確。舉例代碼如下:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void){
intm[12]={31,28,31,30,31,30,31,31,30,31,30,31},year,month;
while(1){//這個循環就是解決輸入錯誤的
printf("Pleaseentertheyear&month... ");
fflush(stdin);
if(scanf("%d%d",&year,&month)&&year>0&&month>0&&month<13)
break;
printf("Error,redo:");
}
m[1]+=year%4==0&&year%100!=0||year%400==0;
printf("%d/%dis%ddays. ",month,year,m[month-1]);
return0;
}
『肆』 求教:如何用C語言編一個判斷用戶輸入的數據是正確的,如果是錯誤的,那麼直到用戶輸入正確為止。
int data;
int res=scanf("%d",data);
while(res!=1)//判斷是否輸入正確
{
while(getchar()!='\n') ;//清理緩沖區
res=scanf("%d",data);
}
while(getchar()!='\n');