C ++中的基本字符串连接未正确输出[关闭]

Posted

技术标签:

【中文标题】C ++中的基本字符串连接未正确输出[关闭]【英文标题】:Basic string concatenation in C++ not outputting properly [closed] 【发布时间】:2021-12-05 01:45:47 【问题描述】:

我在使用 Visual Studio 进行 C++ 连接时遇到问题。我尝试了不同的 cout 变体,但无济于事。

#include "std_lib_facilities.h"

int main()

    cout << "Please enter last name and age\n";
string first_name;
string last_name;
string l2 = "Mr. " + last_name;
int age;
cin >> last_name >> age; 
cout << "Hello, "  << l2 << age << "\n";

谁能帮助解释这里发生了什么阻止它显示“你好,姓氏年龄先生”?当前输出只显示“Hello, Mr. 22”。

【问题讨论】:

【参考方案1】:
string last_name;

这声明了一个last_name,一个字符串。它没有初始化为任何东西,所以这是一个空字符串。之后,执行下一条语句:

string l2 = "Mr. " + last_name;

这声明了l2,并通过将“先生”与last_name 中的任何内容组合起来进行初始化。 last_name 中没有任何内容,它是一个空字符串。所以,l2 包含“先生”,仅此而已,这就是您看到的输出。

稍后:

 cin >> last_name >> age; 

这确实从std::cin 读取last_name。无论如何,这绝对没有区别。仅仅因为这个语句最终初始化了last_name,它对之前使用的last_name 没有任何影响。当它用于初始化l2 时它是空的,并且仅仅因为它现在被初始化为其他东西并不意味着l2 会以这种方式重新初始化。 C++ 不能以这种方式工作。 C++ 中的语句按顺序执行,一次一条语句,一旦执行,它们就是古老的历史。

【讨论】:

以上是关于C ++中的基本字符串连接未正确输出[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

python基本数据类型-字符串拼接-格式化输出-深浅复制-python3笔记

中缀到前缀的程序中的c函数中未返回反转字符串

[我使用while循环反转C#中的字符串,我得到正确的输出,但是我使用与for循环相同的逻辑,然后输出错误

C 中的宽字符输入/输出是不是总是从正确的(系统默认)编码读取/写入?

谁知道DOS的一些基本的命令啊写给我可以吗?

HTML 电子邮件未正确显示