C++用户输入字符串错误

dev*_*__c 1 c++ stl

当我尝试将用户输入作为字符串时,我收到一个奇怪的错误.

我有正确的包括;

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
Run Code Online (Sandbox Code Playgroud)

这是代码,执行时我得到错误;

write("Enter your name");
string name = readString();
write(name);
Run Code Online (Sandbox Code Playgroud)

上面的代码调用了这两个函数;

void game::write(std::string message)
{
    cout << message << "\n";
}

string game::readString()
{
    string userInput = NULL;
    std::cin >> userInput;
    return userInput;
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误: C++错误

我尝试重新构建解决方案 - 我应该使用char数组而不是字符串作为我的应用程序中文本的数据容器吗?

Dan*_*rey 5

您无法从NULL指针初始化字符串.尝试:

string userInput = "";
Run Code Online (Sandbox Code Playgroud)

或者干脆

string userInput;
Run Code Online (Sandbox Code Playgroud)

看到这里并检查ctor no.5,基于C++标准:

21.4.2 basic_string构造函数和赋值运算符[string.cons]

basic_string(const charT* s, const Allocator& a = Allocator());

8          要求: s不应为空指针.