我需要编写一个函数,它接受一个输入迭代器和一个输出迭代器并读取输入流直到完成(我的第一个想法是输入流迭代器将是一个要读取的文件 - 所以当文件内容完全读取时将完成)然后函数将返回。
在这个简单的实验中,从文本文件读取的字符将简单地输出到标准输出。
我的问题是我不知道如何:
A)如何遍历输入
B)检查迭代器何时到达输入的末尾。
C) 发生错误时。
到目前为止,这是我的代码:
#include <iostream>
#include <fstream>
#include <iterator>
bool readTo(std::istream_iterator<char> iit, std::ostream_iterator<char> oit)
{
bool ret(false);
// how to check when end of input file?
// how to iterate through input
// how to check if an error?
char ch = *iit;
*oit++ = 'c';
*oit++ = '=';
*oit++ = ch;
*oit++ = '\n';
return ret;
}
int main() {
std::ifstream strm("test.txt");
if(strm.good()) {
bool ret = readTo(strm, std::cout);
//I only want function to return when readTo read till end of input file
}
return 0;
}