C++ 将字符串转换为常量字符的意外行为*

C++ 将字符串转换为常量字符的意外行为*,c++,string,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(); c

我需要将
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;
}
#包括
#包括
使用名称空间std;
内部主(空){
字符串testStr;
cin>>testStr;
const char*testStrConst=testStr.c_str();

cout因为它从一开始就不是
std::string
的一部分

>
运算符只读取一个空格分隔的单词

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

string testStr;
getline(cin, testStr); 

操作符>>()
逐字读取(跳过空格)。请改用
getline()
。您可能希望在得出结论之前打印出testStr。