C++ 通过函数将文件读入向量

C++ 通过函数将文件读入向量,c++,C++,我正在尝试将txt文件读入函数readIn中的向量。我一辈子都不能让它工作。要么我得到以下消息“error:expected primary expression before'&'标记 readIn(ifstream&infle,vec);“或者根本不调用该函数 int main() { const int MAXSIZE = 100; vector<int> vec (MAXSIZE); ifstream infile; infile.open("in9.3.txt");

我正在尝试将txt文件读入函数readIn中的向量。我一辈子都不能让它工作。要么我得到以下消息“error:expected primary expression before'&'标记 readIn(ifstream&infle,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);
}
intmain(){
常数int MAXSIZE=100;
向量向量向量(MAXSIZE);
河流充填;
infle.open(“in9.3.txt”);
readIn(ifstream&INFLE,vec);
返回(0);
}
无效读入(ifstream&infile、vector&vec){
int a,计数;
计数=0;
而(!infle.eof()){
填充>>a;
向量at(count)=a;
计数++;
}
infle.close();
调整向量大小(计数);
}

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

readIn(ifstream& infile, vec);  // error
请注意,您正试图传递在
main
中定义的变量
infle
。编译器抱怨您在其前面加了
ifstream&
。正确的呼叫是:

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

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

main()
中调用
readIn()
是错误的。(这是半个声明和半个调用。)它必须是
readIn(infle,vec)。编译
main()
时,函数
readIn()
未知。(尚未声明。)将
main()
(包括正文)移到底部,或在
main()
之前(或中)插入
readIn()的声明:
void readIn(ifstream&,vector&)。谢谢!我只是在学习文件输入,在理解infle的用法时遇到了困难。这个修正成功了!不客气。现在是在帮助中心复习的好时机。