不知道大家有没有遇到,在结构体中,scanf输入单个字符时会遇到在显示屏上无法输入字符。回车键被误认为是一个字符。
下面是自己遇到的这样的问题:
主要代码:
struct Student
{
int num;
char name[20];
char sex;
float sorce;
};
struct Student student;
void add()
{
int num;
char name[20];
char sex;
float sorce;
printf("学号:");
scanf("%d",&num);
printf("姓名:");
scanf("%s",name);
printf("性别:");
scanf("%c",&sex);
printf("分数:");
scanf("%f",&sorce);
student.num=num;
strcpy(student.name,name);
student.sex=sex;
student.sorce=sorce;
}
在调试输入时,如果写为scanf("%c",&sex);会出现下面的问题:
学号:45
姓名:wang
性别:分数:90;
性别无法输入直接跳过;
解决办法:
将scanf("%c",&sex);改为scanf(" %c,"&sex);
在%c前面加一个空格,就好了