我想了解输入缓冲区如何工作。所以我写了一段代码:为什么在输入缓冲区中只有一个(两个)空白字符被认为是字符?
#include<stdio.h>
int main(){
int a,b;
char c,d;
scanf("%d %d",&a,&b);
scanf("%c %c",&c,&d);
printf("%d*%d*%c*%c",a,b,c,d);
return 0;
}
现在的输入:
5 4 qw
所以我希望我的输出是:
5*4* *
输出:
5*4* *q
有人可以解释我为什么认为只有两个空格中的一个(在5和4之间的一个是&而另一个在4和q之间)是一个字符而不是它们两个?两个空格中的哪一个被打印为字符?
的空间是一个有效字符,因此被读取 –
它做的正是你告诉它:读取INT,空间,INT,焦炭,空间,字符,第一个字符是在你输入一个空格。 –