cin.getline : 没有匹配的调用函数
cin.getline : no matching function for call
在很多回答和问题如this一中,建议使用cin.getline
从<string>
而不是getline(cin, variable)
:
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cin.getline(name);
}
但就我而言,我遇到了构建问题:
g++ foo.cpp
foo.cpp: In function ‘int main()’:
foo.cpp:8:21: error: no matching function for call to
‘std::basic_istream<char>::getline(std::string&)’
8 | cin.getline(name);
| ^
从编译器提示的错误来看,显然不存在接受类型对std::string
的引用的函数重载(对于cin.getline()
).相反,它接受如下参数:
const int MAX = 100;
char input[MAX];
cin.getline(input, MAX);
// Or better
// cin.getline(input, sizeof input);
在很多回答和问题如this一中,建议使用cin.getline
从<string>
而不是getline(cin, variable)
:
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cin.getline(name);
}
但就我而言,我遇到了构建问题:
g++ foo.cpp
foo.cpp: In function ‘int main()’:
foo.cpp:8:21: error: no matching function for call to
‘std::basic_istream<char>::getline(std::string&)’
8 | cin.getline(name);
| ^
从编译器提示的错误来看,显然不存在接受类型对std::string
的引用的函数重载(对于cin.getline()
).相反,它接受如下参数:
const int MAX = 100;
char input[MAX];
cin.getline(input, MAX);
// Or better
// cin.getline(input, sizeof input);