我一直在用这段代码遇到麻烦。
void readData(const string & filename, vector<double> & fpAngle, vector<double> & liftCo) {
ifstream inFS(filename);
double num1;
double num2;
inFS.open(filename);
if (!inFS.is_open()) {
cout << "Error opening " << filename << endl;
exit (1);
}
while (inFS >> num1 >> num2) {
if (!inFS.fail()) {
fpAngle.push_back (num1);
liftCo.push_back (num2);
}
}
inFS.close();
return;
对于这种情况,我从一个格式化为2列的文件中提取值,我必须将两列都存储到它们各自的向量中。无论我尝试什么,我都无法在两个向量中获得正确数量的值。这里有什么我想念的吗?感谢。
编辑:问题已经解决。我采用了moldbdnilo的建议并相应地编辑了代码,删除了打开/关闭以及(!infs.fail()),这使代码工作。谢谢你,并对我的问题可能没有更彻底的道歉。
答案 0 :(得分:0)
这对你来说可能会有一些变化。
int main()
{
ifstream inFile;
inFile.open(filename);
if (inFile.fail()) {
cout << "Error opening " << filename << endl;
}
std::vector<std::string> code;
string S;
while(fh>>s){
code.push_back(s);
}
for(int i=0; i<vs.size(); i++){
std::cout<<code[i]<<std::endl;
}
}