将字符串转换为const char的意外行为*

Rob*_*lds -2 c++ string

我需要将a转换std::string为a const char*.

为此,我c_str()在字符串上使用了该方法,如下面的代码所示:

#include <iostream>
#include <string>

using namespace std;

int main(void) {
    string testStr;
    cin >> testStr;

    const char* testStrConst = testStr.c_str();

    cout << testStrConst << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我输入"Hey hello"终端,当此代码运行时,输出只是"Hey".

为什么第二个词被忽略了?

Sam*_*hik 5

因为它从来都不是std::string第一名的一部分.

>>运营商只读取单个空格分隔字.

使用std::getline()而不是>>读取在标准输入上输入的整行文本.

string testStr;
getline(cin, testStr); 
Run Code Online (Sandbox Code Playgroud)