1. ホーム
  2. c++

[解決済み] error: 'if' の前にunqualified-idを指定する必要があります。

2022-03-04 20:16:21

質問

このエラーについて、顔が真っ青になるまでググってみましたが、どの結果も私のコードと関連付けることはできませんでした。 このエラーは、通常、中括弧や親文字などの位置の間違いや欠落が原因で発生するようです。

また、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();
}

何が足りないのでしょうか? よろしくお願いします。

解決方法は?

そのような独立したコードを持つことはできません。すべてのコードは関数に入れる必要があります。

ですべて包みます。 main の使い方を修正すればOKです。 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();
  }
}