我正在尝试从输入文件中读取一些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
,因为输入文件的那部分可能会在以后更改。)
答案 0 :(得分: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
}
答案 1 :(得分: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;
将从该行读取数字。