我环顾四周,仍然没有找到如何做到这一点,所以,请多多包涵。
假设我必须读取一个包含不同类型数据的 txt 文件,其中第一个浮点数是一个 id,然后有一些(并不总是相同数量)的其他浮点数代表其他东西......时间,例如, 成对。
所以文件看起来像:
1 0.2 0.3
2.01 3.4 5.6 5.7
3 2.0 4.7
...
经过大量研究,我最终得到了这样的功能:
vector<Thing> loadThings(char* filename){
vector<Thing> things;
ifstream file(filename);
if (file.is_open()){
while (true){
float h;
file >> h; // i need to load the first item in the row for every thing
while ( file.peek() != '\n'){
Thing p;
p.id = h;
float f1, f2;
file >> f1 >> f2;
p.ti = f1;
p.tf = f2;
things.push_back(p);
if (file.eof()) break;
}
if (file.eof()) break;
}
file.close();
}
return things;
}
但是带有条件的while循环(file.peek() != '\n')
永远不会自行完成,我的意思是......偷看永远不等于'\n'
有人知道为什么吗?>>
或者也许是使用运算符读取文件的其他方式?!非常感谢!