error: expected unqualified-id before 'if'

47,013

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();
  }
}
Share:
47,013
mwcz
Author by

mwcz

#SOreadytohelp

Updated on March 01, 2020

Comments

  • mwcz
    mwcz about 4 years

    I've googled this error until I'm blue in the face, but haven't been able to relate any of the results to my code. This error seems to be caused, usually, but misplaced or missing braces, parents, etc.

    It's also been a long time since I wrote any C++, so there could be some obvious, foolish thing that I'm missing.

    This is a Qt Mobile app that I'm writing in 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();
    }
    

    What am I missing? Thanks in advance.

  • mwcz
    mwcz over 12 years
    I can't wrap it in a main since it's part of a larger project that already has a main, but I'll wrap it in a function and call it from the existing main. Thanks. I'm dumb. :)