Pagina 1 di 1

[c++] unexpected end of file

MessaggioInviato: ven nov 28, 2003 10:37 am
da EntropheaR
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>

[c++] unexpected end of file

MessaggioInviato: ven nov 28, 2003 10:37 am
da EntropheaR
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>

MessaggioInviato: ven nov 28, 2003 12:25 pm
da Xerex
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?[?]

MessaggioInviato: ven nov 28, 2003 12:29 pm
da EntropheaR
<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!

MessaggioInviato: ven nov 28, 2003 1:16 pm
da EntropheaR
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>

MessaggioInviato: ven nov 28, 2003 2:34 pm
da Leo
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.

MessaggioInviato: ven nov 28, 2003 5:54 pm
da Zane
Sentilo....la voce della sapienza.....prostriamoci in adorazione! Immagine

MessaggioInviato: ven nov 28, 2003 9:47 pm
da EntropheaR
<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(]

MessaggioInviato: sab nov 29, 2003 11:06 am
da Leo
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;
}

MessaggioInviato: sab nov 29, 2003 11:16 am
da EntropheaR
<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>

MessaggioInviato: mar dic 02, 2003 10:06 am
da EntropheaR
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]

MessaggioInviato: mar dic 02, 2003 10:18 am
da Ices_Eyes
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

MessaggioInviato: mar dic 02, 2003 10:19 am
da EntropheaR
Risolto:

soluzione

<font size="1">Forse la cosa più utile che abbia fatto M$...</font id="size1">