字符串变量顺序 我现在正在学习Bjarne Stroustrup的书编程:使用C++的原理和实践。

字符串变量顺序 我现在正在学习Bjarne Stroustrup的书编程:使用C++的原理和实践。,c++,string,variables,C++,String,Variables,我正处于尝试使用以下示例连接字符串的位置,该示例根据请求针对实际代码进行了编辑: 很抱歉,我没有提到这个程序是有效的。但每当我输入两个名字时,它都显示为空白 #include "std_lib_facilities.h" int main() { string first; string second; string name = first + ' ' + second; cout << "Please enter your first and second names\

我正处于尝试使用以下示例连接字符串的位置,该示例根据请求针对实际代码进行了编辑:

很抱歉,我没有提到这个程序是有效的。但每当我输入两个名字时,它都显示为空白

#include "std_lib_facilities.h"

int main()

{

string first;
string second;
string name = first + ' ' + second;


cout << "Please enter your first and second names\n";
cin >> first >> second;
cout << "Hello, "<<name<<'\n';


}

我的意思是它可能确实起作用了。这里的问题是结果不是你想象的那样

默认情况下,字符串通常为空。所以一个空字符串+一个空格+另一个空字符串=一个空格。你很可能看到了这个空间,但它看起来是空的,因为空间就是空间

如果您想连接用户的输入,则必须在捕获该输入后进行连接,因为程序无法以其他方式了解用户输入的内容


如果你还很困惑,恐怕我不知道除了告诉你C++的工作方式,还有什么别的。这里的问题是结果不是你想象的那样

默认情况下,字符串通常为空。所以一个空字符串+一个空格+另一个空字符串=一个空格。你很可能看到了这个空间,但它看起来是空的,因为空间就是空间

如果您想连接用户的输入,则必须在捕获该输入后进行连接,因为程序无法以其他方式了解用户输入的内容


如果你还很困惑,恐怕我不知道除了C++的工作方式之外,还有什么可以告诉你的。

< P>我建议你多看一个变量是什么,CIN是什么。变量保存一个值。cin从用户检索输入并将其放入变量中。当然,添加两个没有值的变量不会像有值一样起作用。而是将两个空白字符串添加到一个空格中

此外,当您这样做时:

string name=first +' '+second;

您正在将name设置为first的值加上“”的值加上second的值。该变量不是对这些值的引用。这意味着在这一点之后更改第一个和第二个变量不会影响“name”变量的值。

我建议进一步研究变量是什么以及cin的作用。变量保存一个值。cin从用户检索输入并将其放入变量中。当然,添加两个没有值的变量不会像有值一样起作用。而是将两个空白字符串添加到一个空格中

此外,当您这样做时:

string name=first +' '+second;

您正在将name设置为first的值加上“”的值加上second的值。该变量不是对这些值的引用。这意味着在此点之后更改第一个和第二个不会影响“name”变量的值。

请显示导致问题的实际代码,而不是注释和错误。您在输入之前连接空字符串,以便打印时名称为空。这些语句按顺序执行。您可以先声明变量,然后再使用它们。我修好了,很抱歉。谢谢!我担心输入后必须声明变量名。你的例子说明了另一个问题。在需要变量的地方创建变量是一个很好的实践。将声明和初始化放在一个地方,也可以实现常量正确性。随着你的进步,你会学到这些东西的。祝你好运请显示导致问题的实际代码,而不是注释和错误。您在输入前连接空字符串,以便打印时名称为空。这些语句按顺序执行。您可以先声明变量,然后再使用它们。我修好了,很抱歉。谢谢!我担心输入后必须声明变量名。你的例子说明了另一个问题。在需要变量的地方创建变量是一个很好的实践。将声明和初始化放在一个地方,也可以实现常量正确性。随着你的进步,你会学到这些东西的。祝你好运你是对的,程序确实工作了,在我输入名字后,它显示了一个空白。现在,它只有在捕获输入后才能工作,这是有意义的。非常感谢您的澄清。您是对的,该程序确实有效,在我输入名称后,它显示了一个空白。现在,它只有在捕获输入后才能工作,这是有意义的。非常感谢您的澄清。我将进一步探讨这些主题。感谢您的澄清。我将进一步探讨这些主题。谢谢你的澄清。