我正在尝试从输入文件中读取一些 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
,因为输入文件的那部分可能会在以后更改)。
我正在尝试从输入文件中读取一些 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
,因为输入文件的那部分可能会在以后更改)。
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
}
您应该阅读string
变量的所有行。分析它,如果你想阅读这个数字,你可以使用stringstream
( <sstream>
)
string a = "";
in >> a;
//检查行尾是否有C或其他测试然后
stringstream b(a, stringstream::in);
double c1=0, c2=0, c3=0;
b >> c1 >> c2 >> c3;
将从该行读取数字。