0

プログラム

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main () {
  string line,p1,p2,p3;
  ifstream myfile ("infile.txt");
  if (myfile.is_open())
  {
    while ( myfile.good() )
    {
/*
      myfile >> p1 >> p2 >> p3 ;
      cout << "p1 : "  << p1 << "   p2 :  " << p2 << "   p3 :  "  << p3 << endl;
*/

      getline (myfile,line);
      cout << "line : " << line << endl;

    }
    myfile.close();
  }

  else cout << "Unable to open file";

  return 0;
}

INFILE.TXT

name
param1 = xyz
param2 = 99
param3
param_abc = 0.1
june 2012

出力

line : name
line : param1 = xyz
line : param2 = 99
line : param3
line : param_abc = 0.1
line : june 2012
line :

param2 を検索して、その値を出力したい、つまり 99

4

1 に答える 1

1

行を読んだ後、それを解析できます。

stringstream ss(line);
string token;
if (ss >> token && token == "param2") {
    ss >> token; // '='
    ss >> token; // value of param2
    cout << "param2 is: " << token << endl;
  }
}

読み取り操作が成功するためのテストをさらに追加する必要があります (「param2」の後のトークンが実際に=)

「param2」の値が整数であると予想される場合は、最後のトークン抽出の代わりにそれを抽出できます。

int val;
ss >> val;
于 2012-06-12T22:21:01.760 に答える