saberAMD 发表于 2019-4-27 09:24:40

学生成绩管理系统

本帖最后由 saberAMD 于 2019-4-27 09:30 编辑

        for(i=0;i<MAX;i++)
        {
                printf("姓名:");
                scanf("%s",stu.name);//stu后面有个【i】没显示出来,不知道为什么
                printf("是否继续输入学生信息:(Y 继续,N 返回主菜单)\n");
                change = getchar();
                if(change=='Y')
                {
                        system("cls");
                }
                else if(change=='N')
                {
                        break;
                }
        }
请问下这里为什么没起作用 谢谢

我叫MD 发表于 2019-4-27 11:39:03

本帖最后由 我叫MD 于 2019-4-27 11:40 编辑

getchar();      //先获取上字符
change = getchae();             //在赋值;

或者 把change = getchae();这行去了,直接下面这样   

if(getchar() == 'Y')
{
}
else if (getchar() == 'N')
{
}

82457097 发表于 2019-4-27 11:50:45

scanf后面接个getchar 把你输入姓名后的回车清了

jackz007 发表于 2019-4-27 11:58:59

本帖最后由 jackz007 于 2019-4-27 12:00 编辑

      scanf() 会影响后面的 getchar(),所以,应该在 scanf() 的后面添加 fflush(stdin) ; 清除键盘缓冲区
. . . . . .
      scanf("%s" , stu . name)                            ;
      fflush(stdin)                                          ; // 清除键盘缓冲区,因为执行 scanf() 后,键盘缓冲区内会有回车符滞留,会成为后面 getchar() 的输入
      printf("是否继续输入学生信息(Y 继续,N 返回主菜单) : ")      ;
. . . . . .
页: [1]
查看完整版本: 学生成绩管理系统