私はC++の専門家ではなく、htmlファイルの1行で複数のURLを読み取るプログラムを書いているので、次のコードを書きました:
ifstream bf;
short chapters=0;
string blkhtml;
string blktmpfile; //given
string urldown; //given
size_t found = 0, limit;
while(getline(bf, blkhtml)){
while((blkhtml.find(urldown, found) != string::npos) == 1){
found = blkhtml.find(urldown);
limit = blkhtml.find("\"", found);
found=limit + 1;
chapters++;
}
}
ここでの私の問題は、見つかった条件で使用するために更新されていないことwhileです。私が見たように、std::string クラスは、別の std::string クラス (文字列の場合、str.erase() がその値を更新しない限り更新されませんが、(str.at() = '') は更新されません) )、ループが始まるたびに「見つかった」を更新したい場合、および条件に対して、ここで何ができますか。
私がやりたいことは次のとおりです。
指定された文字列に一致する式があるかどうかを確認し
urldownます。最初と最後の文字を設定します。
見つかった URL の後のループで「pos」を更新し、次を探します。
私は cplusplus.com と cppreference.com のいたるところを見てきましたが、私に役立つものは見つかりませんでした。
std::list::remove を 0 から 9 までのすべての数値でループしてから、新しい値を与えることを考えましたが、それが最適なオプションかどうかはわかりません。