用c++写用户从键盘输入姓名和身份证号码,输出姓名、出生年月及当前的年龄。测试用例: 输入姓名:章翠花 身份证号码:620102196012093468输出结果:姓名:章翠花 出生年月:1960年12月09日年龄:61
时间: 2024-09-29 07:07:27 浏览: 39
在C++中,你可以使用`std::cin`从键盘获取用户的输入,并使用字符串处理和日期时间库来解析和计算年龄。这里是一个简单的示例程序:
```cpp
#include <iostream>
#include <string>
#include <ctime>
#include <sstream>
// 辅助函数将身份证号码转换为生日
int getBirthDayFromIDCard(const std::string& id_card) {
int year = id_card[6] - '0';
int month = id_card[7] - '0';
int day = id_card[8] - '0';
return (year * 1000 + month * 100 + day);
}
// 计算年龄
int calculateAge(int birthYear) {
time_t now = time(0); // 获取当前时间
tm* current = localtime(&now);
int currentYear = 1900 + current->tm_year;
return currentYear - birthYear;
}
int main() {
std::string name;
std::cout << "请输入姓名: ";
std::getline(std::cin, name);
std::string id_card;
std::cout << "请输入身份证号码: ";
std::getline(std::cin, id_card);
int birthDay = getBirthDayFromIDCard(id_card);
int birthYear = birthDay / 10000; // 提取年份
int birthMonth = (birthDay % 10000) / 100; // 提取月份
int birthDayOfMonth = birthDay % 100; // 提取日
std::stringstream ss;
ss << "出生年月: " << birthYear << "年" << birthMonth << "月" << birthDayOfMonth << "日";
int age = calculateAge(birthYear);
ss << "\n年龄: " << age;
std::cout << "姓名: " << name << std::endl;
std::cout << ss.str() << std::endl;
return 0;
}
```
运行这个程序,它会提示用户输入姓名和身份证号码,然后按照提供的身份证信息计算并显示出生年月和年龄。注意,这个程序假设身份证号码的格式是有效的,实际应用中需要额外验证。
阅读全文