我有以下程序:int main(int argc,char *argv []){int a,b; char c1,c2; printf(\'输入一些内容:\'); scanf(\'%d \',&a); //第 1 行 printf(&q ...
我有以下程序:
int main(int argc, char *argv[])
{
int a, b;
char c1, c2;
printf("Enter something: ");
scanf("%d", &a); // line 1
printf("Enter other something: ");
scanf("%d", &b); // line 2
printf("Enter a char: ");
scanf("%c", &c1); // line 3
printf("Enter another char: ");
scanf("%c", &c2); // line 4
printf("Done"); // line 5
system("PAUSE");
return 0;
}
正如我在 C 书中读到的,作者说 scanf()
在缓冲区中留下了一个换行符,因此,程序不会在第 4 行停止让用户输入数据,而是存储换行符 c2
并移动到第 5 行。
是吗?
但是,这种情况只发生在 char
数据类型上吗?因为我没有 int
在第 1、2、3 行中看到数据类型的这个问题。对吗?