int a,b,c; scanf("%d,%d,%d",&a,&b,&c); printf("%d,%d,%d\n",a,b,c); char d,e; printf("继续输入...\n"); scanf("%c",&d); printf("%c\n",d); printf("输出完毕...");
下面是执行结果:
上面的代码有两次输入,由打印结果可以看出,第二次输入被跳过了,直接显示输出完毕。
原因是第一次输入时,按下的回车键,也被写进了缓冲区,属于字符,在第二次scanf函数读取缓冲区的时候,读取到了回车符,就被当作字符处理了,省略了键盘输入。所以在继续输入...和输出完毕...中间有两次换行。如果第二次scanf的第一个读取是单个字符,都会读取第一次敲下的回车键字符。可以在第一次读取之后清空缓冲区来避免这种情况
c语言中scanf()函数细节问题
最新推荐文章于 2023-11-23 12:43:15 发布