对scanf输入的理解

我们通过一个例子来说明一下

#include<stdio.h>
int main(int argc, char const *argv[])
{
	int a,anum,c;
	char b[0] ;
	anum = scanf("%d",&a);
	printf("anum = %d,a = %d\n", anum,a);
	scanf("%d",&c);
	scanf("%s",b);
	printf("c = %d\n", c);
	printf("b = %s\n", b);
	return 0;
}


可以发现c = 53是一个系统的垃圾值
可以从上面的测试看出(感觉前两个就概括了一切了)
1⃣️scanf会跳过输入一开始的空白符
2⃣️转化说明符%d %s都不会跳过输入中间的空白符
3⃣️scanf上一次不符合的数据会留着作为下一次的输入

猜你喜欢

转载自blog.csdn.net/qq_37414405/article/details/85221481