私は、末尾に数字がある特定のパターンについて、HTML/XML のゴミが詰まった .txt ファイルをふるいにかける必要があるプログラムに取り組んでいます。このパターンは 10 回発生する必要があります。パターンは次のとおりです: " <p class="wx-temp"> 93.
" 93 は温度の読み取り値であり、最終的に収穫しようとしているものですが、毎日変化するため、残りの弦から 93 を分離する方法を見つけることができません。プログラムは理想的に実行されます。定数にできない整数データ型を定義する方法を見つけようとしてきました (つまり、目的に反するため、文字列の最後に 93 を入力することはできません)。同様に、パターンの終了後に開始する X 文字数、つまりポインター位置を設定できます。とりとめもなくすみません。
1 に答える
0
ファイル全体を単一の文字列にロードしたと仮定しましょう。これは不合理ではありません。
string html;
//(Some code that reads into a big string)
あとはそのタグを探すだけです。
string delimiter( "<p class=\"wx-temp\">" );
vector<int> temperatures;
size_t pos = html.find_first_of(delimiter);
while( pos != string::npos )
{
// Skip past the tag (to the temperature)
pos += delimiter.size();
if( pos >= html.size() ) break;
// Extract it (C-style) and chuck it into the vector.
int temperature = atoi( html.c_str() + pos );
temperatures.push_back(temperature);
// If you want to stop after the first 10:
if( temperatures.size() == 10 ) break;
// Find the next tag
pos = html.find_first_of(delimiter, pos);
}
于 2012-09-14T02:54:17.340 に答える