C语言中输入函数等待输入和结束输入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中输入函数等待输入和结束输入相关的知识,希望对你有一定的参考价值。

先举3个例子:
一、 main()
int i;
float j;
scanf("%d%f",&i);
printf("%d",i);
printf("%f",j);


二、 main()
int i;
float j;
scanf("%f%d",&j);
printf("%d",i);
printf("%f",j);


三、main()
int i;
float j;
scanf("%d%f",&i,&j);
printf("%d",i);
printf("%f",j);

在第一个例子中程序运行后只要输入一个整型(如10)按回车就能返回程序界面;在第二个例子中程序运行后输入一个单精度(如10.2)却不能返回程序界面,处于等待输入状态,直到再输入一个整型后按回车才能返回程序界面;第三个例子中输入一个整型或单精度也不行,只有2个都输入后按回车才能返回。

C语言中要求输入函数的格式符个数要和输入项个数相同,但如果不同的时候哪些情况会等待输入,怎样才能结束输入呢?结束输入是看格式符个数还是输入项个数的?还是看其他的?

你随便输入一个字母试下,马上就返回,除了你本就是要输入%c 参考技术A 第一个和第二个你有两个%,而你后面只有一个变量
第三个才是正常的

怎样检查C语言输入数据的合法性?

1.
通过scanf函数的返回值来验证输入的合法性。
2.
scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。
  ①
遇空格、“回车”、“跳格”键。
  ②
遇宽度结束。
  ③
遇非法输入。
3.
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如:
scanf("%d
%d",&a,&b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end
of
file,返回值为EOF。
且返回值为int型.
参考技术A 如果是整数的话,
这么判断就行:
float
num;
int
num2
scanf("%f",&num);
if(num==(int)num)
num2=(int)num;//如果输入正确,将整数保存到num2中
else
printf("EOF");
参考技术B 我在编程的过程中需要输入整数,如何检查输入数据的合法性?如果合法则继续如果是整数的话,这么判断就行:
float
num;
int
num2
scanf(

以上是关于C语言中输入函数等待输入和结束输入的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何实现输入输出多组数据,该如何结束输入

c语言程序还未输入数据程序就结束

用c语言写一个函数,从键盘得到整行的输入.

C语言中的格式化输出函数和格式化输入函数分别是啥?

C语言输入多个整,输出其中的最大数。用0结束输入

C语言中如何实现多组数据输入输出