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 ++中的基本字符串连接未正确输出[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

当连接未正确关闭时,为啥使用 WAL 模式的 SQLite 数据库中的数据会丢失?

c ++中的字符串排序也没有在第5个元素处正确排序[关闭]

C中的服务器/套接字编程:数据未正确发送/接收?

如何在 R 中的 read_html 之后关闭未使用的连接

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

HTML 电子邮件未正确显示