所以我有一个每次都需要检查的单词列表。我尝试使用以下代码执行此操作:
bool woordenKloppen=true;
//doorloop alle woorden in de array
for (int i=0;i<woordenlijst.size();i++)
{
m_woordenlijst->open(QIODevice::ReadOnly);
m_woordenlijst->reset();
char buffer[1024];
qint64 lineLength = m_woordenlijst->readLine(buffer, sizeof(buffer));
//zoek in de woordenlijst zolang het woord niet gevonden is en de woordenlijst niet gedaan is
while (lineLength!=-1 && woordKlopt==false)
{
QString vergelijkWoord=QString(buffer);
lineLength = m_woordenlijst->readLine(buffer, sizeof(buffer));
//verwijder de return en newline characters van het woord in de file
vergelijkWoord.remove(vergelijkWoord.length()-2,2);
//het woord klopt indien het in de woordenlijst staat
if (woord==vergelijkWoord)
{
woordKlopt=true;
}
}
if (!woordKlopt)
{
woordenKloppen=false;
}
//sluit de woordenlijst
m_woordenlijst->close();
}
//return true als alle woorden klopten, anders false
return woordenKloppen;
每次第一次调用该函数时,这似乎都有效。第二次 lineLength 将为-1,他将跳过循环。我错过了什么吗?提前致谢
文本文件看起来像这样,每行只有一个单词:
aalfuiken
aalgeer
aalgeren
aalglad
aalgladde
aalkorf
aalkorven
aalkuip
aalkuipen
aalmoes
aalmoezen
aalmoezenier
aalmoezeniers
aalmoezenierskamer
aalmoezenierskamers
aalpomp
aalpompen
aalput
aalputten