結構體中scanf輸入字元----(遇到的一個小問題)
阿新 • • 發佈:2018-12-31
不知道大家有沒有遇到,在結構體中,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前面加一個空格,就好了