作者:vaaal52653 | 来源:互联网 | 2023-05-28 21:00
我搜索了互联网并阅读了几个小时的手册,但我无法弄清楚这一个:
我的程序获得一个可选参数,即文件名.考虑这个条件
std::ifstream file;
if (argc > 1) {
file.open(argv[1]);
}
if (file.is_open()) {
processInput(file);
file.close();
} else {
processInput(std::cin);
}
在函数中processInput
我试图从输入中读取所有行并使用它们执行以下操作:
void processInput(std::basic_istream inputStream) {
std::string line;
while (std::getline(inputStream, line)) {
processLine(line);
}
}
但我在basic_istream中遇到错误,所以我不知道应该将哪种类型传递给此函数.我只试过盲目的镜头.
1> Wintermute..:
流不可复制.您必须通过引用传递流:
// v-- here
void processInput(std::basic_istream &inputStream) {
顺便说一下,有一种更短的写法std::basic_istream
,就是这样
void processInput(std::istream &inputStream) {