getchar()问题
程序代码:
#include <stdio.h> #include <stdlib.h> int main() { struct Subject { int Chinese; int math; int English; }; struct Student { int num; char name[10]; char sex[10]; int age; struct Subject score; }student1; int count=0; printf("是否输入第一个学生成绩?(Y/N)?"); getchar(); while(getchar()=='Y') { printf("请输入第一个学生的数据:\n"); printf("请输入学号\n"); scanf("%d",&student1.num); printf("请输入姓名:\n"); scanf("%s",student1.name); printf("请输入性别:\n"); scanf("%s",student1.sex); printf("请输入年龄:\n"); scanf("%d",&student1.age); printf("请输入科目语文成绩:\n"); scanf("%d",&student1.score.Chinese); printf("请输入科目数学成绩:\n"); scanf("%d",&student1.score.math); printf("请输入科目英语成绩:\n"); scanf("%d",&student1.score.English); printf("输入完毕,是否进行检查?(Y/N)\n"); char exam='Y'; getchar(); if(getchar()=='Y') { printf("学号 姓名 性别 年龄 语文 数学 英语\n"); printf("%-d\t%s\t%s\t%d\t%d\t%d\t%d\t\n",student1.num,student1.name,student1.sex,student1.age,student1.score.Chinese,student1.score.math,student1.score.English); } } return 0; }
在是否输入第一个学生成绩那 当我输入Y时 getchar()记入的不是Y 而是\0 我想问下 怎样解决这个问题