You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++实现XX/XX格式日期输入并输出日期及季节的方法

解决XX/XX格式日期输入问题(保留switch语句)

要让用户在一行内输入XX/XX格式的日期,核心是处理输入中的斜杠/——之前的两种方法都没正确处理这个分隔符,导致读取失败或输入流程不顺畅。

问题原因

  • 用cin >> month >> day;时,/不属于整数,cin会停止读取day,导致数据错误;
  • 手动输出/让用户分两次输入,破坏了XX/XX的连贯输入体验。

解决方案

添加一个char类型变量专门接收输入中的斜杠,让cin按整数/整数的格式读取内容,这样用户就能在一行输入01/22这类格式的日期了。

修改后的完整代码

#include <iostream>
using namespace std;

int main()
{
    int month, day;
    char slash; // 用来接收输入中的斜杠

    cout << "Enter the date in XX/XX: ";
    cin >> month >> slash >> day; // 按顺序读取月份、斜杠、日期

    // 简单验证斜杠是否正确(可选,提升鲁棒性)
    if (slash != '/') {
        cout << "Invalid date format! Please use XX/XX.\n";
        return 1;
    }

    switch (month)
    {
        case 1: cout << "The date entered is January " << day << ". The season is winter.\n"; break;
        case 2: cout << "The date entered is February " << day << ". The season is spring.\n"; break;
        case 3: cout << "The date entered is March " << day << ". The season is spring.\n"; break;
        case 4: cout << "The date entered is April " << day << ". The season is spring.\n"; break;
        case 5: cout << "The date entered is May " << day << ". The season is spring.\n"; break;
        case 6: cout << "The date entered is June " << day << ". The season is summer.\n"; break;
        case 7: cout << "The date entered is July " << day << ". The season is summer.\n"; break;
        case 8: cout << "The date entered is August " << day << ". The season is summer.\n"; break;
        case 9: cout << "The date entered is September " << day << ". The season is fall.\n"; break;
        case 10: cout << "The date entered is October " << day << ". The season is fall.\n"; break;
        case 11: cout << "The date entered is November " << day << ". The season is winter.\n"; break;
        case 12: cout << "The date entered is December " << day << ". The season is winter.\n"; break;
        default: cout << "The input is invalid.\n"; break;
    }

    return 0;
}

关键说明

  1. 斜杠处理:cin >> month >> slash >> day会自动跳过输入中的空白(如果有的话),精准读取XX/XX里的月份、斜杠和日期;
  2. 格式验证:添加了对slash是否为/的检查,避免用户输入错误格式(比如用-分隔);
  3. 修正原代码小问题:移除了case 1里多余的0,保持输出一致。

如果需要更严谨的日期验证(比如检查二月天数、各月份的最大日期),可以在switch或读取后添加额外的判断逻辑,但这部分不属于当前核心需求。

内容的提问来源于stack exchange,提问作者Mazin Haider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 22:02:25