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

时间:2017-03-11 15:59:15

标签: c++ string

我需要将std::string转换为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;
}

如果我在终端中键入"Hey hello",则此代码运行时,输出仅为"Hey"

为什么忽略第二个词?

1 个答案:

答案 0 :(得分:5)

因为它从来不是A&的一部分。

std::string运算符只读取一个以空格分隔的单词。

使用>>代替std::getline()来阅读标准输入中输入的整行文字。

>>