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

C++程序优化:如何支持全名输入并将年龄置于括号中?

问题解决:支持全名输入并调整输出格式

原代码的问题

  • cin >> name仅能读取单个单词,无法获取带空格的全名(如"Alex Whatmore")
  • 输出格式不匹配:缺少"Mr. "前缀、年龄未用括号包裹,且排版缺少必要空格

修改后的代码

#include <iostream>
#include <string>
using namespace std;

int main()
{ 
  string name;
  int age;

  cout << "What is your name?" << endl;
  getline(cin, name); // 读取包含空格的整行全名
  cout << "What is your age?" << endl;
  cin >> age;
  cin.ignore(); // 清除输入缓冲区残留的换行符,避免后续输入异常
  
  // 按照指定格式输出
  cout << "Hello, Mr. " << name << " (" << age << ")! " << endl;
  return 0;
}

修改说明

  • 使用getline(cin, name)替代cin >> name:该函数会读取输入的整行内容(直到换行符),完美支持带空格的全名输入
  • 调整输出语句:手动拼接"Mr. "前缀,将年龄用(和)包裹,并补充各部分之间的空格,确保输出与示例完全一致
  • 添加cin.ignore():由于cin >> age会在输入缓冲区留下换行符,若后续有getline操作会直接读取空行,该语句可提前清除这个残留字符,避免潜在问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:35:26