1

ユーザー入力を文字列として取得しようとすると、奇妙なエラーが発生します。

正しいインクルードがあります。

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

これはコードです。実行するとエラーが発生します。

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

上記のコードは、これら 2 つの関数を呼び出します。

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

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

これは私が得るエラーです: C++ エラー

ソリューションを再構築しようとしましたが、アプリケーションのテキストのデータ コンテナーとして、文字列ではなく文字配列を使用する必要がありますか??

4

1 に答える 1

5

NULLポインターから文字列を初期化することはできません。試す:

string userInput = "";

または単に

string userInput;

ここを参照して、ctor noを確認してください。5、C++ 標準に基づく:

21.4.2 basic_string コンストラクターと代入演算子 [string.cons]

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

8          必須: s は null ポインターであってはなりません。

于 2013-03-19T17:22:07.337 に答える