$ cat input2.c
#include
int main()
{
int i;
char c;
char str[30];
printf("input a int :");
scanf("%d",&i);
printf("input a char :");
scanf("%c",&c);
printf("input string :");
scanf("%s",str);
printf("int is %d,\tchar is %c,\tstring is %s\n",i,c,str);
return 0;
}
$ ./input2.o
input a int :3
input a char :input string :asdf
int is 3, char is
, string is asdf
但是如果先输入字符,后输入整数,则正常。如下:
cat input.c
#include
int main()
{
int i;
char c;
char str[30];
printf("input a char :");
scanf("%c",&c);
printf("input a int :");
scanf("%d",&i);
printf("input string :");
scanf("%s",str);
printf("int is %d,\tchar is %c,\tstring is %s\n",i,c,str);
return 0;
}
$ ./input.o
input a char :a
input a int :345
input string :abcedf
int is 345, char is a, string is abcedf