通过函数将文件读取到矢量中

Reading file into vector through function

本文关键字:读取 文件 函数      更新时间:2023-10-16

我正在尝试将 txt 文件读入函数 readIn 中的向量中。我一辈子都无法让它工作。要么我收到以下消息"错误:'&'标记之前的预期主表达式 readIn(ifstream& infile, vec);",或者根本不调用该函数。

int main() {
const int MAXSIZE = 100;
vector<int> vec (MAXSIZE);
ifstream infile;
infile.open("in9.3.txt");
readIn(ifstream& infile, vec);
return(0);
}
void readIn(ifstream& infile, vector<int> &vec) {
int a, count;
count = 0;
while (!infile.eof()) {
infile >> a;
vec.at(count) = a;
count++;
}
infile.close();
vec.resize(count);
}

传递给函数时不得指定参数的类型。 你写的是不正确的:

readIn(ifstream& infile, vec);  // error

请注意,您正在尝试传递变量infile,该变量在main中定义。 编译器抱怨您以ifstream&为前缀。 正确的调用是:

readIn(infile, vec);

还要注意,由于函数是在main之后定义的,因此在main之前必须有一个函数声明。 目前尚不清楚您是否这样做了,因为您还没有展示完整的程序。 在任何情况下,您都可以将整个定义移到main之前,或者只添加以下行:

void readIn(ifstream&, vector<int>&);