Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++用户输入字符串错误_C++_Stl - Fatal编程技术网

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

C++用户输入字符串错误,c++,stl,C++,Stl,当我试图以字符串形式获取用户输入时,出现了一个奇怪的错误 我有正确的包括 #include <iostream> #include <string> #include <sstream> using namespace std; 上面的代码调用这两个函数 void game::write(std::string message) { cout << message << "\n"; } string game::readSt

当我试图以字符串形式获取用户输入时,出现了一个奇怪的错误

我有正确的包括

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
上面的代码调用这两个函数

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

string game::readString()
{
    string userInput = NULL;
    std::cin >> userInput;
    return userInput;
}
这是我得到的错误:


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

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

string userInput = "";
或者干脆

string userInput;
第5号,参见C++标准:

21.4.2基本字符串构造函数和赋值运算符[string.cons] 基本常量图表*s,常量分配器&a=分配器

8要求:s不应为空指针


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

string userInput = "";
或者干脆

string userInput;
第5号,参见C++标准:

21.4.2基本字符串构造函数和赋值运算符[string.cons] 基本常量图表*s,常量分配器&a=分配器

8要求:s不应为空指针


这完全奏效了-我真是个N00b!!在StackOverflow上问这个问题让我觉得自己是个傻瓜——现在我知道答案是多么简单了。@ConnorJackson:一开始每个人都会这样。IIRC,过去甚至有STL会接受您的代码。@Danel Frey-我还有另外两个读取函数,readInt和readChar-它们都接受NULL-但是看它字符串是不同的,因为它也像类类型而不是数据类型。-康诺杰克逊:一般来说,我尽量避免NULL。使用0表示数字类型,“\0”表示字符类型,默认结构表示std::string等,如果可以用于指针,则使用0表示指针。这完全有效-我就是这样一个N00b!!在StackOverflow上问这个问题让我觉得自己是个傻瓜——现在我知道答案是多么简单了。@ConnorJackson:一开始每个人都会这样。IIRC,过去甚至有STL会接受您的代码。@Danel Frey-我还有另外两个读取函数,readInt和readChar-它们都接受NULL-但是看它字符串是不同的,因为它也像类类型而不是数据类型。-康诺杰克逊:一般来说,我尽量避免NULL。对于数字类型使用0,对于字符类型使用“\0”,对于std::string等使用默认结构,如果指针可用。