复制
收藏
提问
简洁

Main.cc: In function ‘int main()’: Main.cc:14:18: error: no matching function for call to ‘std::basic_istream<char>::getline(char [105])’ cin.getline(s);len ^ In file included from /usr/include/c++/5/sstream:38:0, from /usr/include/c++/5/complex:45, from /usr/include/c++/5/ccomplex:38, from /usr/include/x86_64-linux-gnu/c++/5/bits/stdc++.h:52, from Main.cc:1: /usr/include/c++/5/istream:647:5: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::getline(std::basic_istream<_CharT, _Traits>::char_type*, std::streamsize, std::basic_istream<_CharT, _Traits>::char_type) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::char_type = char; std::streamsize = long int] basic_istream<char>:: ^ /usr/include/c++/5/istream:647:5: note: candidate expects 3 arguments, 1 provided /usr/include/c++/5/istream:427:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::getline(std::basic_istream<_CharT, _Traits>::char_type*, std::streamsize) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::char_type = char; std::streamsize = long int] getline(char_type* __s, streamsize __n) ^ /usr/include/c++/5/istream:427:7: note: candidate expects 2 arguments, 1 provided Main.cc:14:20: error: ‘len’ was not declared in this scope cin.getline(s);len ^ Main.cc:15:17: error: ‘i’ was not declared in this scope for(int i=0;i<strlen(s);i++){ ^ Main.cc:18:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<strlen(s);i++){ ^

cfdcf4885
6天前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

"no matching function for call to"错误通常是由于函数调用时参数不匹配导致的。在你的代码中,cin.getline(s);调用缺少必要的参数。

错误原因

  • 参数不匹配cin.getline函数需要两个参数,但你只提供了一个。

解决方法

  • 添加参数:确保cin.getline调用时提供两个参数,即字符数组和数组大小。

示例代码

char s[105];
cin.getline(s, 105); // 添加数组大小参数

其他错误

  • 未声明变量leni在使用前未声明。
  • 修正代码
char s[105];
cin.getline(s, 105);
int len = strlen(s); // 声明并初始化len
for(int i=0; i<len; i++) { // 声明并使用i
    // 你的代码逻辑
}

通过这些修改,你的代码应该能够正确编译和运行。

你觉得结果怎么样?
C++常见错误有哪些?
如何调试C++代码?
C++标准库有哪些常用函数?
cin.getline参数是什么?
如何修正未声明变量?
为什么需要声明变量len?

以上内容由AI搜集生成,仅供参考

在线客服