用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',
问在键盘上如何输入?
main()
{
int a,b;
float x,y;
char c1,c2;
scanf("a=%d b=%d,&a,&b);
scanf(" x=%f y=%e",&x,&y);
scanf(" c1=%c c2=%c",&c1,&c2);
}
解:可按如下方式在键盘上输入:
a=3 b=7
x=8.5 y=71.82
c1=A c2=a
说明:在边疆使用一个或多个scnaf函数时,第一个输入行末尾输入的"回车"被第二
个scanf函数吸收,因此在第二/三个scanf函数的双引号后设一个空格以抵消上行
入的"回车".如果没有这个空格,按上面输入数据会出错,读者目前对此只留有一
初步概念即可,以后再进一步深入理解
例子
连续使用多个scanf适应注意的几点
#include
void main()
{
int a,b;
float x,y;
char c1,c2;
scanf("%d %d",&a,&b); /*后面跟的scanf的双引号内,开头要加空格。否则输入的数据会与要求的不一致*/
scanf(" %f %e",&x,&y);
scanf(" %c %c",&c1,&c2);
printf("%d %d",a,b);
printf("%f %e",x,y);
printf("%c %c",c1,c2);
printf("/n");
}
输入
3 7
8.5 72.18
A a
输出
3 7 /*结果正确*/
8.500000 7.218000e+001 /*结果正确*/
A a /*结果正确*/
Press any key to continue
#include
void main()
{
int a,b;
float x,y;
char c1,c2;
scanf("%d %d",&a,&b);
scanf("%f %e",&x,&y);
scanf("%c %c",&c1,&c2);
printf("%d %d/n",a,b);
printf("%f %e/n",x,y);
printf("%c %c/n",c1,c2);
printf("/n");
}
输入
3 7
8.5 72.18
A a
输出
3 7
8.500000 7.218000e+001
A /*结果发生错误,这里缺少了一个数据a*/
Press any key to continue