【问题标题】:error: expected unqualified-id before 'if'错误:'if'之前的预期不合格ID
【发布时间】:2011-12-31 20:40:28
【问题描述】:

我已经用谷歌搜索了这个错误,直到我脸色发青,但无法将任何结果与我的代码相关联。这个错误似乎通常是由错位或缺少大括号、父母等引起的。

我也已经很久没有写过任何 C++ 了,所以我可能遗漏了一些明显的、愚蠢的东西。

这是我在Qt Creator 2.4.0, Based on Qt 4.7.4 (64 bit) Built on Dec 20 2011 at 11:14:33 写的一个Qt Mobile 应用程序。

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

我错过了什么?提前致谢。

【问题讨论】:

    标签: c++ qt qt4 qt-creator


    【解决方案1】:

    你不能有这样的独立代码。所有代码都需要进入函数。

    将所有内容包装在main 函数中,一旦你修复了QTextStream 的使用,你应该没问题(它没有eof 方法,也没有readline 方法 -请查看附带使用示例的API docs

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

    【讨论】:

    • 我不能将它包装在 main 中,因为它是一个已经有一个 main 的较大项目的一部分,但我会将它包装在一个函数中并从现有的 main 中调用它。谢谢。我很笨。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多