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

时间:2013-03-19 17:20:52

标签: c++ stl

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

我有正确的包含;

#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++ Error

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

1 个答案:

答案 0 :(得分:5)

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

string userInput = "";

或只是

string userInput;

请参阅here并查看ctor no。 5,基于C ++标准:

  

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

     

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

     

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