小然然然然然 2023-06-24 01:48 采纳率: 25%
浏览 56
已结题

怎样可以把字符数组定义的num的前四位限定一个输入数字范围,num的前四位输入要是合理年份

C++学生管理系统
为什么输入学号和性别是正确的形式,也会出现格式错误请重新输入的情况,是哪里的语法弄错了么?顺便问问,怎样可以把字符数组定义的num的前四位限定一个输入数字范围,我们有输入限制要求,num的前四位输入要是合理年份!

img

  • 写回答

3条回答 默认 最新

  • Loup&卡普 2023-06-24 04:32
    关注

    将性别判断的 或改成与

    while (0!=strcmp(sex,x)&&0!=strcmp(sex,y))
    

    当性别 不为 男 且 不为女时进入循环

    既然已经是C++了 可以用 std::string 来写 num 和判断性别

    // 假定 numstd::string
    do{
    cin >> num;
    std::string year = num.substr(0,4);// 取学号前四位
    int nyear = std::stoi(year);
    if (num.size() != 12 &&nyear > 2023 && nyear < 1900)
    cout <<"不符合条件请重新输入";
    else
     break;
    } while (num.size() != 12 &&nyear > 2023 && nyear < 1900);
    
    
    // sex 也为 std::string
    if (sex != "男" && sex != "女")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月2日
  • 已采纳回答 6月24日
  • 创建了问题 6月24日