C++ 错误:在';之前应为非限定id;如果';

C++ 错误:在';之前应为非限定id;如果';,c++,qt,qt4,qt-creator,C++,Qt,Qt4,Qt Creator,我一直在谷歌上搜索这个错误,直到我脸色发青,但还无法将任何结果与我的代码联系起来。这种错误通常是由括号、家长等放错位置或缺失引起的 自从我写C++以来,我也有很长时间了,所以我可能会错过一些明显的、愚蠢的事情。 这是我在Qt Creator 2.4.0中编写的Qt移动应用程序,基于2011年12月20日11:14:33构建的Qt 4.7.4(64位) #包括 #包括 #包括 #包括 #包括 QFile文件(“words.txt”); 英语单词; if(file.open(QIODevice::R

我一直在谷歌上搜索这个错误,直到我脸色发青,但还无法将任何结果与我的代码联系起来。这种错误通常是由括号、家长等放错位置或缺失引起的

自从我写C++以来,我也有很长时间了,所以我可能会错过一些明显的、愚蠢的事情。 这是我在
Qt Creator 2.4.0中编写的Qt移动应用程序,基于2011年12月20日11:14:33构建的Qt 4.7.4(64位)

#包括
#包括
#包括
#包括
#包括
QFile文件(“words.txt”);
英语单词;
if(file.open(QIODevice::ReadOnly))
{
QTextStream(文件(&F);
而(!t.eof()){

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

将所有这些都封装在
函数中,一旦您修复了
QTextStream
的使用,您应该就没事了(它没有
eof
方法,也没有
readline
方法-请查看使用示例附带的示例)

#包括
#包括
#包括
#包括
#包括
int main()
{
QFile文件(“words.txt”);
英语单词;
if(file.open(QIODevice::ReadOnly))
{
QTextStream(文件(&F);
QString line=t.readLine();
而(!line.isNull()){

words我不能将其包装在
main
中,因为它是已经有main的更大项目的一部分,但我会将其包装在函数中,并从现有的main调用它。谢谢。我很笨。:)
#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();
  }
}