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 回答