c++ - cin.getline : 没有匹配的调用函数
问题描述
在许多答案和问题中,例如这个,建议使用cin.getline
from<string>
和 not 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);
| ^
解决方案
从编译器告诉的错误中,很明显没有这样的函数重载接受对(for )的类型引用。std::string
cin.getline()
相反,它接受以下参数:
const int MAX = 100;
char input[MAX];
cin.getline(input, MAX);
// Or better
// cin.getline(input, sizeof input);
推荐阅读
- javascript - 正则表达式:使用正则表达式只允许简单的算术
- r - 计算字符“?”的出现次数 在 r
- sql-server - 使用 3 个参数创建函数 - 开始年份、结束年份和月份
- python - 战术游戏中的 Python 运行时错误:dict 对象不可调用
- android - 如何在片段中创建选项菜单
- python - 启动时运行的 shell 脚本无法运行 mysql
- javascript - S3 上托管的图像仅在 Android chrome 上存在 CORS 错误
- c++ - 如何通过指向另一个成员函数的指针传递模板成员函数?
- c++ - 在 C++ 中覆盖 OpenGL 的纹理包装器
- migration - 如何将现有数据迁移到果园项目?