2012-02-19 96 views
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,因为那部分输入文件可能会稍后改变)。

+0

那么你到目前为止尝试了什么? – Bart 2012-02-19 18:50:28

+0

getline,seekg,ignore等的各种组合 – Eddy 2012-02-19 18:54:51

回答

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 
} 
0

您应该阅读所有行以string变量。分析它,如果你想读这个号码,你可以使用stringstream<sstream>

string a = ""; 
in >> a; 

//检查线路是否有下在年底或其他测试,然后

stringstream b(a, stringstream::in); 

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

会读来自该行的数字。

相关问题