酷代码 AI
菜单
服务商

禾木的C++拜年应答机器人:智能识问、幽默作答、防追问设计

🎉 **C++ 自动回答年龄的拜年小助手(带防追问机制)** 禾木不想一遍遍重复自己的年龄,我们可以用 C++ 写一个**友好又带点小幽默**的程序: ✅ 输入一次年龄后,自动回答所有“你几岁啦?” ✅ 支持多次提问(模拟亲戚轮番上阵 😅) ✅ 加入温馨提示和防疲劳设计(比如答3次后说“我已经告诉您啦~”) ✅ 使用 `std::string` 和 `std::getline` 安全读取问题(避免 `cin >>` 丢掉换行符) --- ### ✅ 完整可运行 C++ 代码(C++11 及以上): ```cpp #include <iostream> #include <string> #include <cctype> #include <algorithm> int main() { int age = 0; // 👉 第一步:禾木自己输入真实年龄(只输一次) std::cout << "🌱 禾木,请输入你的年龄(数字):"; while (!(std::cin >> age) || age < 0 || age > 150) { std::cin.clear(); std::cin.ignore(10000, '\n'); std::cout << "⚠️ 请输入有效的年龄(0~150之间的整数):"; } std::cin.ignore(); // 清除残留换行符 std::cout << "\n✨ 拜年模式启动!亲戚们开始发问啦~(输入 'quit' 或 '退出' 结束)\n"; std::cout << "💡 提示:你可以说 '你几岁啦?'、'多大啦?'、'今年几岁?' 等类似问题~\n\n"; std::string question; int answerCount = 0; const int MAX_ANSWERS = 3; // 防止被反复拷问 😅 while (true) { std::cout << "👨‍👩‍👧‍👦 亲戚问:"; std::getline(std::cin, question); // 🚪 退出条件(忽略大小写和空格) auto trim_and_lower = [](std::string s) -> std::string { s.erase(s.begin(), std::find_if_not(s.begin(), s.end(), ::isspace)); s.erase(std::find_if_not(s.rbegin(), s.rend(), ::isspace).base(), s.end()); std::transform(s.begin(), s.end(), s.begin(), ::tolower); return s; }; std::string cleanQ = trim_and_lower(question); if (cleanQ == "quit" || cleanQ == "退出" || cleanQ == "exit") { std::cout << "\n👋 禾木抱拳:新年快乐,我们明年再见!\n"; break; } // 🔍 判断是否是“问年龄”的典型句式(关键词匹配) bool isAgeQuestion = ( cleanQ.find("几岁") != std::string::npos || cleanQ.find("多大") != std::string::npos || cleanQ.find("年龄") != std::string::npos || cleanQ.find("岁") != std::string::npos ); if (isAgeQuestion) { answerCount++; if (answerCount == 1) { std::cout << "😄 禾木笑嘻嘻:我今年 " << age << " 岁啦!谢谢关心~\n"; } else if (answerCount == 2) { std::cout << "😊 禾木眨眨眼:还是 " << age << " 岁哦,刚说过呢!\n"; } else if (answerCount >= 3) { std::cout << "🫶 禾木乖巧但坚定:我已经告诉您 " << answerCount << " 次啦~祝您新春吉祥,万事如意!\n"; } } else { std::cout << "🤔 禾木歪头:这个问题我不太懂,要不您再问问年龄?\n"; } std::cout << '\n'; // 空行分隔,更清晰 } return 0; } ``` --- ### 💡 使用说明 & 小贴士: - **编译命令(Linux/macOS)**: ```bash g++ -std=c++11 -o nianmubai nianmubai.cpp ./nianmubai ``` - **Windows(MSVC 或 MinGW)** 同理,支持 `-std=c++11`。 - ✅ 支持中文输入(终端需 UTF-8 编码,如 Windows Terminal / VS Code 终端默认支持)。 - ✅ 输入任意含“几岁”“多大”“岁”等词的问题都会触发回答,智能又接地气。 - ✅ 加了输入校验(防非数字年龄)、防崩溃、防无限循环。 --- ### 🧠 开发小建议(给禾木/小程序员): - 🌟 **用户体验第一**:加表情符号、分段提示、语气词,让程序有“人味儿”; - 🛡️ **健壮性很重要**:用 `cin.clear()` + `ignore()` 防止输入错误卡死; - 📦 **可扩展思路**:未来可以加语音识别(调用 API)、存亲戚名字个性化回复(“王姨,我" + age + "岁啦!”); - 🎁 彩蛋:把程序打包成 `.exe` 或脚本,过年时在亲戚面前“演示AI禾木”,瞬间成为科技小明星! --- ######[AI写代码神器 | 1291点数解答 | 2026-02-27 20:27:56]

相关提问
发财导航,免费问AI
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]