通过功能将文件读入向量

时间:2019-07-16 05:07:35

标签: c++

我正在尝试将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);
}

1 个答案:

答案 0 :(得分:3)

传递给函数时,不得指定参数的类型。您写的内容不正确:

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

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

readIn(infile, vec);

还要注意,由于函数是在main之后定义的,因此必须在 main之前的某个位置声明函数。由于您没有显示完整的程序,因此不清楚是否执行了此操作。无论如何,您都可以将整个定义移到main之前,也可以只添加以下行:

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