gpt4 book ai didi

C++ getline传文件或cin

转载 作者:太空宇宙 更新时间:2023-11-04 15:17:51 25 4
gpt4 key购买 nike

我在互联网上搜索并阅读了几个小时的手册,但我无法理解这个:

我的程序有一个可选参数,即文件名。考虑这个条件

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<char> inputStream) {
std::string line;
while (std::getline(inputStream, line)) {
processLine(line);
}
}

但我在 basic_istream 中遇到错误,所以我不知道应该将什么类型传递给此函数。我只尝试了盲拍。

最佳答案

流是不可复制的。您必须通过引用传递流:

//                                         v-- here
void processInput(std::basic_istream<char> &inputStream) {

顺便说一句,有一种更短的写法std::basic_istream<char> , 这是

void processInput(std::istream &inputStream) {

关于C++ getline传文件或cin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27714839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com