2011-12-31 318 views
9

我已經使用了這個錯誤,直到我在臉上發藍,但還沒有能夠將任何結果與我的代碼聯繫起來。這個錯誤似乎是由於通常造成的,但是錯誤放置或丟失了大括號,父母等。錯誤:在'if'之前預期的非限定ID

自從我編寫任何C++之後,我也有很長一段時間了,所以可能會有一些明顯,愚蠢的東西丟失。

這是一個我在Qt Creator 2.4.0, Based on Qt 4.7.4 (64 bit) Built on Dec 20 2011 at 11:14:33中編寫的Qt移動應用程序。

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

我錯過了什麼?提前致謝。

回答

16

你不能擁有這樣的獨立代碼。所有代碼都需要進入功能。

所有包裹在一個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(); 
    } 
} 
+1

在'main'我不能完成它,因爲它已經有一個主一個更大的項目的一部分,但我將它包裝在一個函數,並從現有主調用它。謝謝。我很愚蠢。 :) – mwcz 2011-12-31 20:45:47

相關問題