Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[c++] unexpected end of file

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[c++] unexpected end of file

Messaggioda EntropheaR » ven nov 28, 2003 10:37 am

Uso lo stramaledetto compilatore di casa M$, Visual Studio <font size="1">(che è poi quello su cui dovrò fare l'esame) </font id="size1">

Questo è il programma, una cavolatina di morra cinese...dove sbaglio?
Come mai mi da quell' errore?


<b>#include <stdio.h>
Enum Scelta {SASSO, CARTA, FORBICE};
Enum Vincitore {player1, player2, PARI};
int main () {
int n;
Scelta Scelta1, Scelta2;
Vincitore win;
cout << "Fate la vostra scelta: sasso(0), carta(1), forbici(2)" << endl;
cout << "Giocatore1: ";
cin >> n;
Scelta1 = Scelta(n);
cout << "Giocatore2: ";
cin >> n;
Scelta2 = Scelta(n);
switch (Scelta2 - Scelta1) {
case '0': win = PARI;break;
case '2':
case '-1': win = player1;break;
case '1':
case '-2': win = player2;break;
}
if (win == PARI) {
cout << "/t avete pareggiato /t" << endl;
else if (win == player1) cout << "Ha vinto il Giocatore1 << endl;
else cout << "Ha vinto il Giocatore2 << endl;
}
}</b>
Avatar utente
EntropheaR
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 12742
Iscritto il: gio feb 20, 2003 11:31 pm
Località: Zena

[c++] unexpected end of file

Messaggioda EntropheaR » ven nov 28, 2003 10:37 am

Uso lo stramaledetto compilatore di casa M$, Visual Studio <font size="1">(che è poi quello su cui dovrò fare l'esame) </font id="size1">

Questo è il programma, una cavolatina di morra cinese...dove sbaglio?
Come mai mi da quell' errore?


<b>#include <stdio.h>
Enum Scelta {SASSO, CARTA, FORBICE};
Enum Vincitore {player1, player2, PARI};
int main () {
int n;
Scelta Scelta1, Scelta2;
Vincitore win;
cout << "Fate la vostra scelta: sasso(0), carta(1), forbici(2)" << endl;
cout << "Giocatore1: ";
cin >> n;
Scelta1 = Scelta(n);
cout << "Giocatore2: ";
cin >> n;
Scelta2 = Scelta(n);
switch (Scelta2 - Scelta1) {
case '0': win = PARI;break;
case '2':
case '-1': win = player1;break;
case '1':
case '-2': win = player2;break;
}
if (win == PARI) {
cout << "/t avete pareggiato /t" << endl;
else if (win == player1) cout << "Ha vinto il Giocatore1 << endl;
else cout << "Ha vinto il Giocatore2 << endl;
}
}</b>
Avatar utente
EntropheaR
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 12742
Iscritto il: gio feb 20, 2003 11:31 pm
Località: Zena

Messaggioda Xerex » ven nov 28, 2003 12:25 pm

Sembra un problema di parentesi...
Premetto che non ricordo benissimo il C++(SDK) sotto win...
però:

Apri la parentesi del main e la chiudi prima della fine della funzione...
mi sbaglio?[?]
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)


Messaggioda EntropheaR » ven nov 28, 2003 12:29 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Xerex</i>
<br />Apri la parentesi del main e la chiudi prima della fine della funzione...
mi sbaglio?[?]
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

Pirla io che mi sono dimenticato di copiarla...in realtà c'era...aspè che correggo il codice!
Avatar utente
EntropheaR
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 12742
Iscritto il: gio feb 20, 2003 11:31 pm
Località: Zena

Messaggioda EntropheaR » ven nov 28, 2003 1:16 pm

Ora va!

<b>#include <iostream.h>
enum Scelta {SASSO, CARTA, FORBICE};
enum Vincitore {player1, player2, PARI};
int main () {
int n;
Scelta Scelta1, Scelta2;
Vincitore win;
cout << "Fate la vostra scelta: sasso(0), carta(1), forbici(2)" << endl;
cout<< "Giocatore1: ";
cin >> n;
Scelta1 = Scelta(n);
cout << "Giocatore2: ";
cin >> n;
Scelta2 = Scelta(n);
switch (Scelta2 - Scelta1) {
case 0: win = PARI; break;
case 2: win = player1; break;
case -1: win = player1; break;
case 1: win = player2; break;
case -2: win = player2; break;
}

if (win == PARI)
cout << "avete pareggiato
.";
else if (win == player2)
cout << "Ha vinto il Giocatore2.
";
else cout <<"Ha vinto il Giocatore1.
";



}</b>
Avatar utente
EntropheaR
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 12742
Iscritto il: gio feb 20, 2003 11:31 pm
Località: Zena

Messaggioda Leo » ven nov 28, 2003 2:34 pm

Credo che il problema sia in questa sezione:

Codice: Seleziona tutto
if (win == PARI)
cout << "avete pareggiato
.";
else if (win == player2)
cout << "Ha vinto il Giocatore2.
";
else cout <<"Ha vinto il Giocatore1.
";


Trasformala così:
Codice: Seleziona tutto
if (win == PARI)
  cout << "avete pareggiato
.";
else
  {
   if (win == player2)
     cout << "Ha vinto il Giocatore2.
";
   else
     cout <<"Ha vinto il Giocatore1.
";
  }


Fammi sapere se il problema era effetivamente questo.
Avatar utente
Leo
Silver Member
Silver Member
 
Messaggi: 1683
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda Zane » ven nov 28, 2003 5:54 pm

Sentilo....la voce della sapienza.....prostriamoci in adorazione! Immagine
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda EntropheaR » ven nov 28, 2003 9:47 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Leo</i>
Fammi sapere se il problema era effetivamente questo.
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

Non credo...dato che con lgli ultimi cambiamenti fatti il vwecchio programma funzionava...

...il fatto è che ora mi da di nuovo quell'errore però con un altro programma...

Riporto anche l'errore <b>fatal error C1010: unexpected end of file while looking for precompiled header directive</b>

<b>#include <stdio.h>


int main()
{
int n, sum;

cout <<"inserisci un numero di sei cifre:";
cin >>n;
somma = n%10 + n/10%10 + n/100%10 + n/1000%10 + n/10000%10 + n/100000%;
cout <<"la somma delle cifre di " <<n<< " vale " <<somma<<endl;


}</b>

Ci sto diventando scemo, tra l'altro questo programma l'ho copiato pari pari da un libro.[XX(][XX(][XX(]
Avatar utente
EntropheaR
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 12742
Iscritto il: gio feb 20, 2003 11:31 pm
Località: Zena

Messaggioda Leo » sab nov 29, 2003 11:06 am

Gli errori di questo programma sono diversi:

1) Non hai dichiarato la variabile somma

2) n è stato dichiarato come intero, ma in realtà non è in grado di contenere un numero a 6 cifre. Non so nel tuo compilatore, ma in genere un int è mappato su 2 byte, con valori che variano da -32767 a 32768. Noterai subito quindi che un numero di 6 cifre va di sicuro in overflow su un int.

3) Ti sei dimenticato di concludere una riga di codice:
Codice: Seleziona tutto
somma = n%10 + n/10%10 + n/100%10 + n/1000%10 + n/10000%10 + n/100000%;


Qui sotto trovi la versione corretta del tuo programma. L'ho testata con un compilatore piuttosto vecchio, ma sempre utile...

Codice: Seleziona tutto
#include <stdio.h>

int main()
{
long int n, somma;

cout <<"inserisci un numero di sei cifre:";
cin >>n;
somma = (n%10) + ((n/10)%10) + ((n/100)%10) + ((n/1000)%10) + ((n/10000)%10) + ((n/100000)%100000);
cout <<"la somma delle cifre di " <<n<< " vale " <<somma<<endl;
}
Avatar utente
Leo
Silver Member
Silver Member
 
Messaggi: 1683
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda EntropheaR » sab nov 29, 2003 11:16 am

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Leo</i>
Codice: Seleziona tutto
#include <stdio.h>

int main()
{
long int n, somma;

cout <<"inserisci un numero di sei cifre:";
cin >>n;
somma = (n%10) + ((n/10)%10) + ((n/100)%10) + ((n/1000)%10) + ((n/10000)%10) + ((n/100000)%100000);
cout <<"la somma delle cifre di " <<n<< " vale " <<somma<<endl;
}


<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

Copiato e incollato...lo compilo e mi dice

<b>--------------------Configuration: sommacifre - Win32 Debug--------------------
Compiling...
sommacifre.cpp
c:giovannisommacifresommacifre.cpp(12) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.

sommacifre.obj - 1 error(s), 0 warning(s)</b>
Avatar utente
EntropheaR
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 12742
Iscritto il: gio feb 20, 2003 11:31 pm
Località: Zena

Messaggioda EntropheaR » mar dic 02, 2003 10:06 am

Continua a darmi lo stesso errore indipendentemente dal programma che sia giusto o meno...faccio le prove copiano i programmi da un libro eppure di dice sempre unexpected end of file...

Non è che Visual C++ è infarcito di bug come ogni schifosissimo programma M$?

[XX(][V]
Avatar utente
EntropheaR
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 12742
Iscritto il: gio feb 20, 2003 11:31 pm
Località: Zena

Messaggioda Ices_Eyes » mar dic 02, 2003 10:18 am

Secondo me il problema sta proprio nel compilatore, potrebbe essere che qualche cosa si è "rota". Prova a vedere con un altro compilatore se riesci.Mi pare che dal sito della Borland ci sia qualcosa di scaricabile, altrimenti credo in rete trovi sicuramente...

Ciao
Avatar utente
Ices_Eyes
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5543
Iscritto il: ven ott 24, 2003 10:37 am
Località: Prov. di Venezia

Messaggioda EntropheaR » mar dic 02, 2003 10:19 am

Risolto:

soluzione

<font size="1">Forse la cosa più utile che abbia fatto M$...</font id="size1">
Avatar utente
EntropheaR
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 12742
Iscritto il: gio feb 20, 2003 11:31 pm
Località: Zena


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising