C 不能输入带空格的字符串
来源:百度知道 编辑:UC知道 时间:2024/06/08 04:13:29
我知道用gets()
但是
printf("Student %d:\n",i+1);
printf("ID:");
scanf("%d",&p1->id);
printf("Name:");
gets(p1->name);
printf("Score:");
scanf("%f",&p1->socre);
这里就是不管用!!!!!!
空格后SCORE就不能输入自动跳过!!!!!为什么!
但是
printf("Student %d:\n",i+1);
printf("ID:");
scanf("%d",&p1->id);
printf("Name:");
gets(p1->name);
printf("Score:");
scanf("%f",&p1->socre);
这里就是不管用!!!!!!
空格后SCORE就不能输入自动跳过!!!!!为什么!
到底,你的输入是什么?是name无法输入的吧?
scanf("%d",&p1->id);
修改为:
scanf("%d%*c",&p1->id);
加%*c,是为了略过输入id时的回车符号,因为这个回车符号影响gets(name)
printf("Student %d:\n",i+1);
printf("ID:");
scanf("%d",&p1->id);
printf("Name:");
fflush(stdin);
gets(p1->name);
fflush(stdin);
printf("Score:");
scanf("%f",&p1->socre);
调用fflush。
以后你就知道了,现在不想在这里做过多解释!
用getline函数试试看,有些程序以空格符作为一个单词的结束
在scanf的下一句加一个gets()
就可以了