我正在尝试打印字符串中包含的所有html标记。这里的代码逻辑似乎有些问题,我不断得到一个永无止境的循环。
string fileLine;
string strToPush;
fileLine ="<html> sdad </b>as"; // My string that I want to find tags from
cout << fileLine << '\n';
while(!fileLine.length()==0)
{
if(fileLine.at(0)=='<')
{
strToPush = "";
while(!fileLine.at(0)=='>')
{
strToPush = strToPush + fileLine.at(0);
fileLine.erase (0);
}
cout << endl << "HTML Tag detected: " << strToPush <<endl;
}
else
{
fileLine.erase (0);
}
}
答案 0 :(得分:2)
我怀疑你被运营商优先权绊倒了。这条线
while(!fileLine.length()==0)
相当于
while( (!fileLine.length()) == 0 )
你可能想做的是:
while( !(fileLine.length() == 0) )
您可以将其简化为:
while( !fileLine.empty() )
同样,更改行
while(!fileLine.at(0)=='>')
到
while ( fileLine.at(0) != '>' )