PDA

Visualizza la versione completa : [C++] DO-WHILE e IF controllo di una risposta


razielmitico
29-12-2012, 00:51
Buona sera a tutti vi posto un pezzo di codice che ho creato:


do //saldo di partenza
{
cout<<"hai un saldo di partenza?"<<endl;
cin>>risp;
}
while (risp != si and risp != no and risp != No and risp != Si and risp != NO and risp != SI );

if (risp == Si or risp == si or risp == SI)
{
cout<<"inserisci il saldo di partenza"<<endl;
cin>>saldo_partenza;
} //fine saldo di partenza


in teoria dovrebbe fare una domanda,chiedere la risposta,verificare se la risposta diversa da "si o no" se diversa richiede di inserire la risposta altrimenti continua,ma invece qualsiasi cosa digito sulla tastiera mi rif la domanda,come mai?

goatboy
29-12-2012, 10:30
Quando confronti qualcosa con una stringa si utilizzano, mi pare di ricordare, i doppi apici. Ad esempio se confronti risposta con si, dovresti scrivere "if risposta=="si". Ma poi, non sarebbe meglio utilizzare una strcmp per comparare due stringhe? La funzione strcmp si trova in string.h . Prova un p.

oregon
29-12-2012, 12:34
Se in un codice scrivi

si

no

queste saranno identificate come variabili non come costanti alfabetiche.

A seconda di come hai dichiarato la variabile risp dovrai usare un metodo opportuno di confronto.

== "si"

se hai usato un oggetto string, oppure

strcmp(risp, "si")

se hai usato un semplice array di char.

Se controlli su un libro del linguaggio, trovi tutto nei primi capitoli.

razielmitico
03-02-2013, 22:53
Originariamente inviato da oregon
Se in un codice scrivi

si

no

queste saranno identificate come variabili non come costanti alfabetiche.

A seconda di come hai dichiarato la variabile risp dovrai usare un metodo opportuno di confronto.

== "si"

se hai usato un oggetto string, oppure

strcmp(risp, "si")

se hai usato un semplice array di char.

Se controlli su un libro del linguaggio, trovi tutto nei primi capitoli.

ho risolto usando l'"strcmp"! grazie

oregon
03-02-2013, 23:01
Originariamente inviato da razielmitico
ho risolto usando l'"strcmp"! grazie

Meglio tardi che mai ...

Loading