2010-11-10 35 views
6

có lỗi lạ trong chương trình của tôi. trình biên dịch của tôi cho tôi biết:lỗi kết thúc kỳ lạ của lỗi chương trình

expected `}' at end of input 
expected unqualified-id at end of input 
expected `,' or `;' at end of input 

và làm nổi bật dòng cuối cùng của mã của tôi, là dấu đóng cho hàm main() của tôi. tôi đã nhận xét ra tất cả các mã trong int main(), nhưng nó vẫn từ chối biên dịch. tôi đã kiểm tra thiếu ";" và không có gì. SciTE kiểm tra dấu ngoặc đơn và dấu ngoặc đơn và nội dung, vì vậy tôi biết mọi thứ đều được đóng đúng cách. tôi dường như không làm bất cứ điều gì điên rồ ở tất cả

sẽ bao gồm các lớp học gây ra những lỗi này?

#include <iostream> 
#include <fstream> 
#include <vector> 

#include "commands.h" 


int main(){ 

} 

nếu có sự cố trong lệnh.h, nó có biểu hiện ở khung cuối cùng không?

+2

Bạn có thể đăng mã của mình không? – birryree

+2

Bạn có bất kỳ ký tự không phải ASCII nào không? Kiểm tra dấu cách và dấu ngoặc kép, nếu bạn sao chép chúng từ web/từ. –

+2

Khi bạn '# include' một tệp, trình biên dịch sẽ chèn bản sao của tệp đó vào mã nguồn của bạn. Vì vậy, có, nếu một tệp bạn '# include'-ing có lỗi giống như dấu chấm phẩy bị thiếu sau định nghĩa lớp, nó có thể tự hiển thị trong tệp nguồn của bạn. – indiv

Trả lời

11

Bạn có thể đã quên dấu chấm phẩy sau khi đóng ngoặc nhọn trên định nghĩa lớp hoặc cấu trúc.

class C 
{ 
} // <<-- HERE, semicolon needed 

Một trong những điều khác có thể xuất hiện ở đó là một khai báo biến:

class C 
{ 
} c; // <<-- creates a global variable of type "class C" 

Từ một tên biến là một không đủ tiêu chuẩn-id, điều này giải thích thông báo lỗi của bạn.

+0

không, thật không may. tôi đã kiểm tra dấu chấm phẩy. không có gì sau khi đóng khung của lớp ngoại trừ ";" – calccrypto

+0

@calccrypto: Trên mọi lớp, bao gồm cả các tệp trong tệp tiêu đề? –

+1

tôi đã tìm thấy lỗi. nó trở thành một "{" bổ sung trong các nguyên mẫu lớp – calccrypto

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