1

当我尝试将用户输入作为字符串获取时,我遇到了一个奇怪的错误。

我有正确的包含;

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

这是代码,执行时出现错误;

write("Enter your name");
string name = readString();
write(name);

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

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

string game::readString()
{
    string userInput = NULL;
    std::cin >> userInput;
    return userInput;
}

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

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

4

1 回答 1

5

您不能从NULL指针初始化字符串。尝试:

string userInput = "";

或者干脆

string userInput;

请参见此处并检查 ctor 编号。5、基于C++标准:

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

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

8          要求: s 不得为空指针。

于 2013-03-19T17:22:07.337 回答