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
,因为那部分输入文件可能会稍后改变)。
我试图从输入文件读取一些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;
//检查线路是否有下在年底或其他测试,然后
stringstream b(a, stringstream::in);
double c1=0, c2=0, c3=0;
b >> c1 >> c2 >> c3;
会读来自该行的数字。
那么你到目前为止尝试了什么? – Bart 2012-02-19 18:50:28
getline,seekg,ignore等的各种组合 – Eddy 2012-02-19 18:54:51