龙行天下_123 2013-06-26 03:42 采纳率: 0%
浏览 1864

这个程序错在哪里了?

#include <stdio.h>
#include <string.h>
#define N 100

int num;

struct informaion
{   
    char name[100];
    int sex;
    int season_1;
    int season_2;
    int season_3;
    int season_4;
} Num_worker[N];

/*新建文件函数*/



int main (void)
{
    char c;
    int i,j,k;
    int num=0;
    int Number_Choice1;
/*主菜单*/   
    printf ("|");
    for (i = 0;i < 50;i ++)
        printf ("-");
    printf ("|\n");
    printf ("|            ");
    printf ("欢迎使用本员工业绩管理程序");
    printf ("            |\n");
    printf ("|");
    for (i = 0;i < 50;i ++)
        printf ("-");
    printf ("|\n\n\n");

    printf ("|");
    for (i = 0;i < 40;i ++)
        printf ("-");
    printf ("|\n");
    printf ("|               ");
    printf ("0-新建文件");
    printf ("               |\n");
    printf ("|               1-修改员工业绩           |\n");
    printf ("|               2-显示员工业绩           |\n");
    printf ("|               3-查询员工业绩           |\n");
    printf ("|               4-删除员工业绩           |\n");
    printf ("|               5-对员工信息进行排序     |\n");
    printf ("|               6-保存文件               |\n");
    printf ("|               7-读取信息               |\n");
    printf ("|               8-增加记录               |\n");
    printf ("|               9-结束运行               |\n");
    printf ("|----------------------------------------|\n\n");
    printf ("左边数字对应功能选择,请选0-9\n");
    scanf ("%d",&Number_Choice1);

    switch (Number_Choice1)
        {
            case 0:
                            do
                            {
                                printf ("您将要添加一组信息,确定吗?");
                                c=getchar();
                                if (c == 'Y')
                                    {
                                        printf ("请输入姓名:");
                                        scanf ("%s",Num_worker[num].name);

                                        printf ("请输入性别<0为女,1为男>:");
                                        scanf ("%i",&Num_worker[num].sex);

                                        printf ("\n请输入第一季度业绩:");
                                        scanf ("%i",Num_worker[num].season_1);

                                        printf ("\n请输入第二季度业绩:");
                                        scanf ("%i",Num_worker[num].season_2);

                                        printf ("\n请输入第三季度业绩:");
                                        scanf ("%i",Num_worker[num].season_3);

                                        printf ("\n请输入第四季度业绩:");
                                        scanf ("%i",Num_worker[num].season_4);

                                        ++ num;
                                    }
                            }
                            while   (c == 'Y');



                break;
            case 1:
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            case 5:
                break;
            case 6:
                break;
            case 7:
                break;
            case 8:
                break;
            case 9:
                break;
            default:
                printf ("左边数字对应功能选择,请选0-9");
                break;
        }






    return 0;
}

为什么不能执行到printf ("您将要添加一组信息,确定吗?");
c=getchar();
这里。请大虾们答疑解惑!

  • 写回答

3条回答 默认 最新

  • haolong8986 2013-06-26 13:19
    关注

    getchar();从缓冲去读取字符,上一步输入了数字后缓冲区还会存在一个回车符,因此c='\0x10'.
    其实只要在调getchar()前显式的清空缓存区就行了。

    printf ("您将要添加一组信息,确定吗?");
    fflush(stdin); // 清空缓存区
    c=getchar();

    评论

报告相同问题?

悬赏问题

  • ¥15 镍氢电池充电器设计实物使用原理
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?