C语言printf/scanf忽略输入参数
使用printf打印时,如遇多个int类型的参数,scanf会忽略后续的参数。以下代码由VS2019执行
例如
int a,b,c;
scanf_s("%d %d",&a,&b,&c);
printf("%d %d",a,b);
当输入1,2,3并回车后,printf打印出来的值只有1和2,C的值被忽略
当输入的参数为字符类型时,输出有可能出错。例如:
char a, b, c;
scanf_s("%c %c",&a,&b,&c);
printf("%c %c",a,b);
当从键盘输入 a,b,c并回车后,发现屏幕输出a和?
字符b并没有输出。
当输入的参数过少时,会造成编译通过,但程序执行错误,例如:
char a, b, c;
scanf_s("%c %c",&a);
printf("%c %c",a);
键盘输入字符a,b后回车,编译可通过,但程序会报错