そのため、毎回チェックする必要がある単語のリストがあります。私は次のコードでこれをやってみました:
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;
関数が初めて呼び出されるたびに、これはうまくいくようです。2 回目は lineLength が -1 になり、ループをスキップします。何か不足していますか?前もって感謝します
テキストファイルは次のようになります。各行に 1 単語だけです。
aalfuiken
aalgeer
aalgeren
aalglad
aalgladde
aalkorf
aalkorven
aalkuip
aalkuipen
aalmoes
aalmoezen
aalmoezenier
aalmoezeniers
aalmoezenierskamer
aalmoezenierskamers
aalpomp
aalpompen
aalput
aalputten