我正在阅读一本 C++ 教科书,作为 C++ 编程的复习。其中一个实践问题(无需过多介绍)要我定义一个可以作为参数传递 ifstream 或 cin(例如 istream)的函数。从那里,我必须通读流。麻烦的是,我想不出一种方法让这个函数使用 cin 和 ifstream 来有效地找到流的结尾。即,
while(input_stream.peek() != EOF)
不会为cin工作。我可以修改函数以查找某个短语(例如“#End of Stream#”或其他内容),但我认为如果我传递的文件流具有这个确切的短语,那么这是一个坏主意。
我曾想过使用函数重载,但到目前为止,这本书已经提到了它想要我这样做的时候。我可能在这个练习题上投入了太多精力,但我喜欢创作过程,并且很好奇是否有这样一种方法可以做到这一点而不会超载。