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/