我有一个看起来像的文件:
1.23 2.34 4.4 6.5 3.4
3.43 5.34 5.44 4.5 1.4
.... and so on
因此有很多行被空格划分。其实我正在阅读它们:
double values[5];
while (infile >> values[0] >> values[1] >> values[2] >> values[3] >> values4]) {
for (int j = 0; j < 5; j++) {
coordinates.at(x).values.push_back(values[j]);
}
x++;
}
我希望能够在文件中更改数量,例如从5到20更改。有没有快速的方法来执行此操作?我发现只是将整行读作一个字符串,然后制作一个流并使用大量函数来获取这些值。 我知道我的解决方案也是错误的,因为我首先将它们存储在表中,以便稍后将它们放到矢量中。
更新:
回答这个问题是错误的,但我自己解决了这个问题:
string line;
while (getline(file, line)) {
stringstream ss(line);
double val;
while (ss >> val) {
//do something
}
x++;
}
答案 0 :(得分:1)
#include <iostream>
#include <fstream>
#include <sstream>
int main() {
std::ifstream file("data");
while (file) {
std::string line;
std::getline(file, line);
std::stringstream ss(line);
while (ss) {
double val;
if (ss >> val) {
//
// do whatever you want here
//
}
}
}
}