您的位置:首页 > 编程语言 > C语言/C++

c语言:用scanf函数输入数据,举例并分析错误原因

2016-05-29 13:39 423 查看
用scanf函数输入数据,举例并分析错误原因
用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上如何输入。
程序:

#include<stdio.h>
int main()
{
int a, b;
float x, y;
char c1, c2;
scanf("a=%d b=%d",&a,&b);
scanf("%f %e",&x,&y);
scanf("%c%c", &c1, &c2);
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1, c2);
return 0;
}
输入方式一及结果分析:
a=3 b=7
8.5 71.82Aa
a=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a
请按任意键继续. . .
在输入8.5和71.82两个实数给x和y后,应紧接着输入字符A,中间不要有空格,由于字母A不是数字,系统在遇到字母A时,就确定输入给y的值已经结束,字符A就送到下一个scanf语句中的字符变量c1。
输入方式二及结果分析:
a=3 b=7
8.5 71.82 Aa
a=3,b=7,x=8.500000,y=71.820000,c1= ,c2=A
请按任意键继续. . .
在输入8.5和71.82两个实数后,输入的空格符就被c1读入,c2读入了字符A,故输出c1时就输出空格,输出c2的值为A。
输入方式三及结果分析:
a=3 b=7
8.5 71.82
Aa
a=3,b=7,x=8.500000,y=71.820000,c1=
,c2=A
请按任意键继续. . .
在输入8.5和71.82两个实数后,按回车键再输入Aa,这时“回车”被作为一个字符送到内存输入缓冲区,被c1读入,字符A被c2读取,故在输出c1时,就输出一个换行,在下一行输出逗号和c2的值A。

本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1740239
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐