2010-11-10 16 views
6

im ottenere uno strano errore nel mio programma. il mio compilatore mi sta dicendo:strano errore di fine programma

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

e il suo evidenziando l'ultima riga del mio codice, che è la parentesi di chiusura per la mia funzione main(). ho commentato tutto il codice in int main(), ma si rifiuta comunque di compilare. ho controllato per mancante ";" e non c'è niente. SciTE controlla parentesi e parentesi e roba, quindi so che tutto è chiuso correttamente. Non sembra che stia facendo qualcosa di pazzesco a tutti

includere le classi causa questi errori?

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

#include "commands.h" 


int main(){ 

} 

se un problema era in commands.h, si manifesterebbe nell'ultima parentesi?

+2

Puoi pubblicare il tuo codice? – birryree

+2

Hai caratteri non ASCII? Controlla lo spazio e le virgolette, se le hai copiate da web/word. –

+2

Quando si '# include' un file, il compilatore in sostanza inserisce la copia di quel file nel codice sorgente. Quindi sì, se un file che hai '# include' -ing ha un errore come un punto e virgola mancante dopo la definizione della classe, può manifestarsi nel tuo file sorgente. – indiv

risposta

11

Probabilmente hai dimenticato il punto e virgola dopo la parentesi di chiusura su una definizione di classe o struttura.

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

Una delle altre cose che possono apparire non v'è una dichiarazione di variabile:

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

Dato un nome di variabile è un incondizionato-id, questo spiega il messaggio di errore.

+0

no, sfortunatamente. ho controllato per il punto e virgola. non c'è niente dopo la parentesi di chiusura della classe tranne il ";" – calccrypto

+0

@calccrypto: su ogni classe, compresi quelli nei file di intestazione? –

+1

ho trovato l'errore. risulta essere un "{" extra nei prototipi di classe – calccrypto