PDA

Visualizza la versione completa : [C++] Errori nella compilazione


manu86
20-10-2007, 19:20
salve ho provato a compilare un programma preso da un libro..


//il gioco d'azzardo craps
#include <iostream>
using std::cout;
using std::endl;
#include <cstdlib>//contiene i prototipi delle funzioni rand e srand
using std::rand;
using std::srand;
#include <ctime>//contiene il prototipo della funzione time
using std::time;
int rollDice();//prototipo dlla funzione che deve lanciare i dadi
int main(){
//enumerazioni con le costenti che rappresentano lo stato del gioco
enum Status{CONTINUE,WON,LOST};
int myPoint;//obbiettivo se non vi vincita o perdita al primo lancio
Status gameStatus;//puo asumere i valori CONTINUE ,WON,LOST
//randomizzazzione della generazione dei numeri casuali utilizzando iln tempo
srand(time(0));
int sumOfDice=rollDice();//primo lancio
//determina lo stato del gioco e l'obbiettivo (se necessario in base al primo lancio
switch(sumOfDice){
case 7://il 7 vince al primo lancio
case 11://l'11 vince al primo lancio
gameStatus=WON;
break;
case 2://il 2 perde al primo lancio
case 3://il 3 perde al primo lancio
case 12://il 12 perde al primo lancio
gameStatus=LOST;
break;
default:
//ne vincita e ne perdita; occorre ricordare l'obbiettivo
gameStatus=CONTINUE;//il gioco non concluso
myPoint=sumOfDice;//memorizza l'obbiettivo
cout<<"point is" <<myPoint<<endl;
break;//opzionale alla fine dello switch
}
//fine dello switch
//se il gioco non finito
while(gameStatus==CONTINUE){
sumOfDice=rollDice();//tira il dado di nuovo
//determina lo stato del gioco
if(sumOfDice==myPoint)//vincita
gameStatus=WON;
else
if(sumOfDice==7)//perdita

gameStatus=LOST;
//fine del while
//visualizza il risultato del gioco
if (gameStatus==WON)
cout<<"Player wins"<<endl;
else
cout<<"Player loses"<<endl;
return 0;//determina una corretta terminazione
}
//fine del main
}
//lancia i dadi calcola la somma e mostra i risultati
int rollDice(){
//genera due numeri casuali
int die1=1+rand()%6;//primo dado
int die2=1+rand()%6;//secondo dado
int sum=die1+die2;
//calcola la somma dei dadi
//visualizza il risultato dei due lanci
cout<<"Player rolled "<<die1<<"+"<<die2<<"="<<sum<<endl;
return sum;//restituisce la somma dei due dadi
}//fine della funzione rollDice
quando lo compilo con visual c++ mi dice:


--------------------Configuration: azzardo - Win32 Debug--------------------
Compiling...
azzardo.cpp
C:\Documents and Settings\edo1.EDO\Desktop\informatica\azzardo.cpp( 6) : error C2039: 'rand' : is not a member of 'std'
C:\Documents and Settings\edo1.EDO\Desktop\informatica\azzardo.cpp( 6) : error C2873: 'rand' : symbol cannot be used in a using-declaration
C:\Documents and Settings\edo1.EDO\Desktop\informatica\azzardo.cpp( 7) : error C2039: 'srand' : is not a member of 'std'
C:\Documents and Settings\edo1.EDO\Desktop\informatica\azzardo.cpp( 7) : error C2873: 'srand' : symbol cannot be used in a using-declaration
C:\Documents and Settings\edo1.EDO\Desktop\informatica\azzardo.cpp( 9) : error C2039: 'time' : is not a member of 'std'
C:\Documents and Settings\edo1.EDO\Desktop\informatica\azzardo.cpp( 9) : error C2873: 'time' : symbol cannot be used in a using-declaration
Error executing cl.exe.

azzardo.obj - 6 error(s), 0 warning(s)

come faccio per farlo funzionare???

oregon
20-10-2007, 19:35
Probabilmente stai usando la versione 6 ... devi modificare la parte iniziale cosi'

#include <iostream>
// using std::cout;
// using std::endl;
#include <cstdlib>//contiene i prototipi delle funzioni rand e srand
// using std::rand;
// using std::srand;
#include <ctime>//contiene il prototipo della funzione time
// using std::time;
using namespace std;

e modificare questa riga alla fine

return 0; //fine del main

manu86
20-10-2007, 19:41
ok grazie..

Loading