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