1

入力ファイルからいくつかの xyz 座標を読み込もうとしています。これは私が持っている入力ファイルです:

input.inp

POSITIONS
1.5    2.5    1.5    C
3.2    1.5    4.5    C
1.4    4.2    3.2    C

" C"入力ファイルを含む文字列を検索し、その行から座標の読み取りを開始する関数を作成したいと思います。C ++でこれを行うにはどうすればよいですか? POSITIONS(入力ファイルのその部分は後で変更される可能性があるため、単語を検索したくありません)。

4

2 に答える 2

2
ifstream file("in");
string line;
while (getline(file, line)) { 
    if (line.find(" C") == string::npos)
        continue;
    istringstream ss(line);
    double x, y, z;
    ss >> x >> y >> z;
    if (!ss)
        continue; // error
    // ok
}
于 2012-02-19T22:34:20.903 に答える
0

すべての行をstring変数に読み込む必要があります。それを分析し、この数字を読みたい場合はstringstream( <sstream>)を使用できます

string a = "";
in >> a;

// 行の最後に C があるかどうかを確認するか、他のテストを行ってから

stringstream b(a, stringstream::in);

double c1=0, c2=0, c3=0;
b >> c1 >> c2 >> c3;

その行から数字を読み取ります。

于 2012-02-19T19:00:25.197 に答える