C++ 连接的字符串之间没有空格

C++ 连接的字符串之间没有空格,c++,string,C++,String,我一直在尝试在串联字符串上编写此代码: #include<iostream> #include<string> using namespace std; int main (){ string line, total; //Read strings from the input// cout<<"Enter a String"<< endl; while(getline(cin,line)){ co

我一直在尝试在串联字符串上编写此代码:

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

int main (){
    string line, total;
    //Read strings from the input//
    cout<<"Enter a String"<< endl;
    while(getline(cin,line)){
        cout<< "Enter another String"<< endl;
        if(!line.empty())
        total+=line;
        cout<<" Concatenated string is\t"<<total<< endl;
    }

    return 0;
}
#包括
#包括
使用名称空间std;
int main(){
字符串行,总计;
//从输入中读取字符串//

cout运算符
+=
不会为您添加空格。 您需要显式地添加空格,类似于
total+=“line;”

但是,我的输出在两个附加字符串之间没有空格

要在连接的字符串之间放置空格,只需添加它们

 total += ' ' + line;
       // ^^^
“我还需要一种方法来终止添加的字符串。”

例如,要结束循环,可以在
if(!line.empty())
测试中使用
break;
语句执行
else
分支。

输入空字符串时,循环和程序结束。

+=
不会自动在两个字符串之间添加空格。您需要手动添加空格

大概是这样的:

total += " " + line;
此外,本文还提供了有关+=运算符的示例说明。

string的运算符+=不会隐式添加空间。因此您必须手动执行此操作:
total+=“”+line;
。这里有很多类似的答案:。有关更简单的解决方案,请参阅上面的注释“终止”添加的字符串是什么意思?我的意思是,如果运行代码,每个实例我都会提示用户输入字符串,输入字符串提示和连接的字符串输出同时出现在屏幕上。我希望UTPUT显示首先输入一个字符串,然后下一行显示另一个字符串,这样,如果只选择两个字符串,那么下面的行将显示级联字符串。当我包含Burn语句时,谢谢C++突然退出Windows C++控制台。eak语句,它在不中断的情况下工作。但是,当我在提示下输入一个空字符串时,输出显示“输入字符串”提示和附加的字符串输出。我的印象是,在输入空字符串时,只有附加的字符串将被打印,而不是提示“输入字符串”。@dirty_sanchez“当我包含了中断语句时,我突然退出Windows C++控制台”,可以在调试模式下运行程序,并在“最后一个括号<代码> } /代码>中设置断点,在主()/<代码>中。这将保持控制台打开。或者,您可以在循环之后放置<代码> GETCHE()/<代码>语句。