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)'|

在此问题上的任何帮助将不胜感激,在此先感谢您!

最佳答案

您正在 call std::istream::getline(char *, streamsize)-您可以看到它需要char *而不是您要传递的std::string

改为使用std::getline(std::istream&, std::string&, char),如下所示:

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

关于c++ - 如何使用cin.getline解决 “No instance of overloaded function”错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10625701/

10-12 07:36
查看更多