ошибка: ожидаемый неквалифицированный идентификатор перед «если» - PullRequest
10 голосов
/ 01 января 2012

Я погуглил эту ошибку до тех пор, пока мне не стало бледно, но я не смог связать результаты с моим кодом.Эта ошибка, как правило, вызвана, но неуместными или отсутствующими скобками, родителями и т. Д.

Прошло также много времени с тех пор, как я написал любой C ++, так что может быть что-то очевидное, глупое, что яотсутствует.

Это приложение Qt Mobile, которое я пишу в Qt Creator 2.4.0, Based on Qt 4.7.4 (64 bit) Built on Dec 20 2011 at 11:14:33.

#include <QFile>
#include <QString>
#include <QTextStream>
#include <QIODevice>
#include <QStringList>

QFile file("words.txt");
QStringList words;

if( file.open( QIODevice::ReadOnly ) )
{
    QTextStream t( &file );

    while( !t.eof() ) {
        words << t.readline();
    }

    file.close();
}

Чего мне не хватает?Заранее спасибо.

1 Ответ

19 голосов
/ 01 января 2012

У вас не может быть такого автономного кода. Весь код должен идти в функции.

Оберните все это в функцию main, и вы будете в порядке, как только вы исправите использование QTextStream (у него нет метода eof, и у него также нет метода readline - пожалуйста, посмотрите API документы , которые идут с примерами использования.

#include <QFile>
#include <QString>
#include <QTextStream>
#include <QIODevice>
#include <QStringList>

int main()
{
  QFile file("words.txt");
  QStringList words;

  if( file.open( QIODevice::ReadOnly ) )
  {
    QTextStream t( &file );

    QString line = t.readLine();
    while (!line.isNull()) {
        words << line;
        line = t.readLine();
    }

    file.close();
  }
}
...