‘壹’ 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');