**编译器错误** - getline() 函数不接受第一个参数"std:ifstream"是什么我的问题?
**Compiler error** - getline() function not accepting first parameter "std:ifstream" what is my issue?
我正在为我的家庭作业写一个计算单词和行数的程序。我想知道为什么我得到错误:"没有重载函数"getline"的实例匹配参数列表。参数类型为(std::ifstream, int)"我确信"infile"是std::ifstream参数类型。问题可能是视觉工作室或我很快责怪没有事先的知识?附:我搜索了一点,但不会找到一个线程与完全相同的问题…有类似的,但他们最终是有人把文件名的字符串,而不是流本身。还要记住我正在写这篇文章,我还没有完成
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
ifstream infile;
infile.open("Lear.txt");
string word;
int countWords = 0, countLines = 0;
while (!infile.eof())
{
infile >> word;
countWords++;
getline(infile, countLines); //issue area here at infile
countLines++;
}
cout << "Words: " << setw(9) << countWords << endl;
cout << "Lines: " << setw(9) << countLines << endl;
infile.close();
}
没有接受int
second参数的std::getline
过载。我假设你的意思是传递你的std::string
变量。
getline(infile, word);
您应该删除infile >> word;
行或决定是否要使用它或std::getline
。我认为在这种情况下你不需要两者。
这将修复编译器错误,但不会修复程序逻辑。如果使用std::getline
,则必须解析每行以计算单词数。
相关文章:
- std::ifstream::read 不会读取所有 512 字节,并设置 EOF 和失败位
- std::ifstream 在读取文件中最后一项时设置 eofbit,但仅在读取数值类型时发生
- 如何将QByteArray转换为std::istream或std::ifstream?
- 从带有 std::ifstream::read() 的文件中读取 int 遍历 char * 二进制数据
- std::ifstream因某种原因关闭了?
- 自定义类对象的C++向量 - 复制构造函数已删除 - std::ifstream
- std::ifstream 数据类型?
- std::ifstream,使用已删除功能
- std::ifstream 在二进制模式下,语言环境在 C++ 中
- std :: ifstream的开头角色是什么
- 如何从文件*中获取和std :: ifstream对象
- 如何使用行位置在std :: ifstream中导航
- 如何重用包含 std::ifstream 的类
- std::ifstream 将文件读取为 BYTE(无符号字符)而不是字符
- 使用 std::ifstream 读取 ASCII 文本文件C++
- 是否有任何模拟框架可以模拟std :: ifstream和其他I/O库
- Typo:bool to int conversion诱导的std :: ifstream在Linux下的错误
- std::ifstream 和读取文件
- std::ios::binary 或 std::ifstream::binary 和类似
- C++:使用std::ifstream读取二进制文件后删除缓冲区/指针时发生访问冲突