Visual Studio环境下C++字符串拼接输出异常排查求助
C++字符串拼接异常问题解答
根因分析
- 变量赋值时序错误:你在调用
cin给last_name赋值之前,就提前完成了l2的拼接。此时last_name是刚声明的空字符串,l2拼接完成后的值固定为Mr.,后续last_name的更新不会同步到已经生成的l2变量中,所以最终输出不会显示输入的姓氏。 - 冗余变量:代码中声明的
first_name变量从未使用,属于冗余内容,不会影响运行但建议清理。 - 输出格式遗漏空格:原输出语句中
l2与age之间未加空格,即使拼接逻辑正确,也会出现姓氏与年龄连在一起的显示问题。
修复方法
调整代码执行顺序,将字符串拼接逻辑放到用户输入完成之后即可,修正后代码如下:
#include "std_lib_facilities.h" int main() { cout << "Please enter last name and age\n"; string last_name; int age; // 先读取用户输入的内容 cin >> last_name >> age; // 输入完成后再拼接字符串 string l2 = "Mr. " + last_name; // 输出时增加空格分隔姓氏和年龄 cout << "Hello, " << l2 << " " << age << "\n"; }
内容的提问来源于stack exchange,提问作者Sam Edick
相关产品推荐
相关产品推荐

