Grazie mille, purtroppo non ho molta pratica con le strutture dati, ho iniziato da poco per un progetto universitario.
A questo punto vi pongo un altro problema, conosco la causa ma non so come risolverlo.
Ho un progetto con tante classi, una di queste riguarda l'interfaccia e contiene metodi come "leggi intero", "leggi stringa", "scrivi", ecc ecc, in modo da evitare di scrivere tante volte le stesse istruzioni.
Quando lo si esegue(è un gioco testuale), viene chiesto sempre al giocatore cosa deve fare e il giocatore scrive l'azione.
Io ho creato una funzione che deve gestire l'inserimento di alcuni ingranaggi negli appositi spazi e funziona, il problema è che quando esce dalla funzione mi stampa due volte la scritta cosa devo fare( presente in leggi_comando)...la causa del problema è il richiamo del metodo "leggi intero". Questo metodo nella mia funzione lo richiamo tre volte, ho provato a non usarlo, impostando direttamente io i valori e in questo modo non da problemi, ma a me serve leggerli in input tramite leggi intero.
questi sono alcuni metodi della classe interfaccia:
void Interfaccia::scrivi(string testo)
{
cout << testo << endl;
}
int Interfaccia::leggi_intero(string domanda)
{
int risposta;
cout << domanda << endl;
cin >> risposta;
return risposta;
}
string Interfaccia::leggi_stringa(string domanda)
{
string risposta;
cout << domanda << endl;
cin >> risposta;
return risposta;
}
string Interfaccia::leggi_comando()
{
string risposta;
do
{
cout << "Cosa devo fare?" << endl;
getline(cin, risposta);
}
while (risposta[0] == '\0');
cout << endl;
return risposta;
}
nella funzione in cui gestisco gli ingranaggi uso interfaccia.scrivi e interfaccia.leggi_intero. La cosa strana è che comunque funzionano, ma mi da il problema che una volta che esce dalla funzione mi stampa due volte il cosa devo fare.
spero di essere stato chiaro