1. ホーム
  2. c++

[解決済み] cin.getlineで「No instance of overloaded function」エラーを修正するにはどうしたらいいですか?

2022-02-08 06:05:29

質問

string add_text()
{
    const int string_size(30);
    string add_string;
    cin.getline (add_string,string_size,'\n');
    return add_string;
}

上記の関数でプログラムをコンパイルすると、エラーが発生します。なお、私は using namespace std; をプログラム内で先に実行しています。また、Visual Studio 11 Professional Beta を使ってコンパイルしてみました。

エラーです。

C:\Users\Jonathan\Documents\Code_Blocks\test_12\main.cpp|32|error: no matching function for call to 'std::basic_istream<char, std::char_traits<char> ::getline(std::string&, const int&, char)'|

この問題について何か助けがあれば、非常に感謝されます、前もってありがとうございます

解決方法は?

あなたが呼んでいるのは std::istream::getline(char *, streamsize) - を要求しているのがわかると思います。 char * の代わりに std::string を渡します。

使用方法 std::getline(std::istream&, std::string&, char) のように、代わりに

getline(cin, add_string, '\n');