c++qtqt4

error: expected unqualified-id before 'if'


I've googled this error but haven't been able to relate any of the results to my code.

This error seems to be caused, usually, by misplaced or missing braces, parents, etc.

This is a Qt Mobile app that I'm writing in Qt Creator 2.4.0.

#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();
}

What am I missing?


Solution

  • You can't have free-standing code like that. All code needs to go into functions.

    Wrap all that in a main function and you should be ok once you've fixed your use of QTextStream (it has no eof method, and it doesn't have a readline method either - please look at the API docs that come with usage examples).

    #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();
      }
    }