当我尝试将用户输入作为字符串时,我收到一个奇怪的错误。
我有正确的包含;
#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;
}
这是我得到的错误:
我尝试重新构建解决方案 - 我应该使用char数组而不是字符串作为应用程序中文本的数据容器吗?
答案 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不应为空指针。