2011-12-31 33 views
9

Tôi đã báo lỗi này cho đến khi tôi có mặt màu xanh, nhưng không thể liên kết bất kỳ kết quả nào với mã của tôi. Lỗi này dường như được gây ra, thường là, nhưng bị đặt nhầm hoặc thiếu dấu ngoặc đơn, cha mẹ, v.v.: id không đủ tiêu chuẩn dự kiến ​​trước 'if'

Nó cũng đã được một thời gian dài kể từ khi tôi viết bất kỳ C++, vì vậy có thể có một số điều rõ ràng, ngu ngốc mà tôi đang thiếu.

Đây là ứng dụng Qt dành cho thiết bị di động mà tôi đang viết bằng 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(); 
} 

Tôi đang thiếu gì? Cảm ơn trước.

Trả lời

16

Bạn không thể có mã độc lập như vậy. Tất cả các mã cần phải đi vào chức năng.

Quấn tất cả những gì trong một chức năng main và bạn nên ok sau khi khắc phục việc bạn sử dụng QTextStream (nó không có phương pháp eof, và nó không có một phương pháp readline hoặc là - hãy nhìn vào API docs mà đến với các ví dụ sử dụng).

#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

Tôi không thể bọc nó trong một 'chính' vì nó là một phần của dự án lớn hơn đã có chính, nhưng tôi sẽ bọc nó trong một hàm và gọi nó từ chính hiện có. Cảm ơn. Tôi ngốc thật. :) – mwcz

Các vấn đề liên quan