1

ファイルに保存されているさまざまな値を 1 つずつ読み取る必要があります。ifstreamでファイルを開こうかと思ったのですが、1行に数字が3つ、もう1行に数字が1つか2つというような設定になっているので、それぞれの数字の読み方がわかりません。一つずつ。使おうと思っていたのstringstreamですが、うまくいくか不安です。

ファイルはこのような形式です。

52500.00       64029.50      56000.00
65500.00       
53780.00       77300.00     
44000.50       80100.20      90000.00      41000.00    
60500.50       72000.00

各数値を読み取って に保存する必要がありvectorます。

これを達成するための最良の方法は何ですか?各行に含まれる数値の数が異なる場合でも、一度に 1 つの数値を読み取りますか?

4

3 に答える 3

7

ファイルから数値として読み取らないのはなぜですか?

double temp;
vector<double> vec;
ifstream myfile ("file.txt");

if (myfile.is_open()) {
  while ( myfile >> temp) {
    vec.push_back(temp);
  }
  myfile.close();
}
于 2010-04-14T09:45:59.017 に答える
1

数値の位置を気にしない場合は、 getlineの後にistringstreamを使用することを提案します:

std::ifstream f("text.txt");
std::string line;
while (getline(f, line)) {
    std::istringstream iss(line);
    while(iss) {
        iss >> num1;
    }
}
于 2010-04-14T09:57:31.737 に答える
0
vector<double> v;
ifstream input ("filename");
for (double n; input >> n;) {
  v.push_back(n);
}
于 2010-04-14T10:03:08.717 に答える