1. 程式人生 > >結構體中scanf輸入字元----(遇到的一個小問題)

結構體中scanf輸入字元----(遇到的一個小問題)

  不知道大家有沒有遇到,在結構體中,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前面加一個空格,就好了