关于scanf函数
本帖最后由 一直在学习 于 2021-3-8 23:06 编辑#include<stdio.h>
int main()
{
char a,b,c,d;
scanf("%c%c",&a,&b);//ab
printf("%c%c\n",a,b);//ab
scanf("%c %c",&c,&d);//a b
printf("%c%c",c,d);//ab
}
运行结果为:
ab
ab
a b
a请按任意键继续. . .
在第二个地方输入 a空格b回车 后,输出很奇怪??
#include<stdio.h>
int main()
{
char a,b,c,d;
//scanf("%c%c",&a,&b);//ab
//printf("%c%c\n",a,b);//ab
scanf("%c %c",&c,&d);//a b
printf("%c%c",c,d);//ab
}
当把第一个输入去掉后,输入 a空格b回车 后,就正常了
VS2010 scanf你输入"ab回车"
在系统看来你输入的就是"ab\n"
#include<stdio.h>
int main()
{
char a,b,c,d;
scanf("%c%c",&a,&b);//ab
// 去掉scanf 余留下的 \n
while(getchar() != '\n')
continue;
printf("%c%c\n",a,b);//ab
scanf("%c %c",&c,&d);//a b
// 去掉scanf 余留下的 \n
while(getchar() != '\n')
continue;
printf("%c%c",c,d);//ab
} 这样也行,原因就是楼上说的
#include<stdio.h>
int main()
{
char a,b,c,d;
scanf("%c%c",&a,&b);//ab
printf("%c%c\n",a,b);//ab
getchar();
scanf("%c %c",&c,&d);//a b
printf("%c%c\n",c,d);//ab
}
页:
[1]