String 使用C+;中的用户输入进行字符串连接+;

String 使用C+;中的用户输入进行字符串连接+;,string,c++11,concatenation,String,C++11,Concatenation,我试图编写一个代码,从用户那里获取一个输入并与另一个字符串连接,但效果不好。代码在下面 #include<iostream> using namespace std; int main() { string s1="Hi "; string s2; cin>>s2; s1=s1+s2 cout<<s1; return 0; } 预期产出: Hi this is how it works 但它没有像我预期的那样

我试图编写一个代码,从用户那里获取一个输入并与另一个字符串连接,但效果不好。代码在下面

#include<iostream>
using namespace std;
int main() {
    string s1="Hi ";
    string s2;
    cin>>s2;
    s1=s1+s2
    cout<<s1;
    return 0;
}
预期产出:

Hi this is how it works
但它没有像我预期的那样起作用。结果是:

Hi this

有人能帮我吗?

“>>”读取空格分隔的字符串。 现在我发现
getline
用于读取行

#include<iostream>
using namespace std;
int main() {
    string s1="Hi ";
    string s2;
    getline(cin,s2);
    s1=s1+s2;
    cout<<s1;
    return 0;
}
#包括
使用名称空间std;
int main(){
字符串s1=“Hi”;
字符串s2;
getline(cin,s2);
s1=s1+s2;
不能包含
使用名称空间std;
int main()
{
字符串s1=“hi”;
字符串s2;

你可能想了解一下。
>
操作符读取空格分隔的字符串。谢谢,@Someprogrammerdude。现在我纠正了它。我面临着同样的问题,我尝试使用getline,但现在它没有读取第二个字符串数据。我只得到了Hi,句子的其余部分没有打印
#include<iostream>
using namespace std;
int main() {
    string s1="Hi ";
    string s2;
    getline(cin,s2);
    s1=s1+s2;
    cout<<s1;
    return 0;
}
#include <iostream>
using namespace std;

int main()
{
    string s1="hi ";
    string s2;

    cout << "Enter string s2: ";
    getline (cin,s2);


    s1 = s1 + s2;

    cout << "concating both "<< s1;

    return 0;
}