关于scanf与换行符的问题

scanf在读取字符串时,会自动忽略换行符,所以

char ch,a[10],b[10];
	scanf("%s",a);
	scanf("%s",b);
	printf("%s",a);
	printf("%s",b);

当输入abc回车def时,输出abcdef

但是换行符还是留在缓冲区中,所以我们在scanf后面应该加上一行

getchar();

来去掉残留的换行符

特别地: scanf(“%c”,&a) 会读取换行符

一般情况下,我们不需要每次都加上getchar,因为scanf只读取对应的类型,但是如果后面的程序中出现要读取字符时,就一定要加上getchar把缓冲区中的回车符去除。

你可能感兴趣的:(C/C++)