PDA

Visualizza la versione completa : Iterazioni in C++


RedDragon
18-03-2003, 17:43
Salve.
Quando io vado a creare una iterazione while o do...while e vado a mettere nella condizione una variabile di tipo char, l'iterazione non funziona. Come devo fare?
Grazie

:dh:

By RedDragon

l.golinelli
18-03-2003, 18:27
Posta un piccolo esempio please... :quipy:

Johnny_Depp
18-03-2003, 18:28
------------
char c=0;
while(c<65)
c++;
printf("%d\n",c); //65
printf("%c\n",c); //A
------------

oppure:

------------
char c='A';
while(c<'Z')
c++;
printf("%d\n",c); //90
printf("%c\n",c); //Z
------------

cmq se non hai risolto, posta il codice.

RedDragon
20-03-2003, 18:04
Io devo inserire un blocco di istruzioni all'interno di una iterazione e voglio far effettuare la scelta con un lettera (y/n).
Il segmento di programma :

char c;
do {
...
printf("Vuoi Continuare? (y/n);
scanf("%c",&c);
} while (c == 'y');

utilizzando operatori diversi da "==", una qualunque lettera diversa da y vale per la lettera n. E' possibile fare che con la digitazione della lettera y continua l'iterazione, e con la digitazione della lettera n esce dall'iterazione;

Johnny_Depp
20-03-2003, 21:19
char c=NULL;

do{
fflush(stdin);
printf("CONTINUO ? [y/n] :");
scanf("%c",&c);
}while(c!='n');


se digiti "n" esce, tutti gli altri caratteri itera.

TheGreatWorld
21-03-2003, 01:30
fflush() forza la scrittura solo su buffer in output, quindi come la hai usata tu non va bene. bisogna fare:




char c=NULL;

do
{
printf("CONTINUO ? [y/n] :");
scanf("%c",&c);
while((getchar()) != '\n');
} while(c!='n');



bye

l.golinelli
21-03-2003, 19:45
fflush funziona solo in Windows... A me in Linux non va... :confused:

TheGreatWorld
21-03-2003, 21:42
Se fflush(stdin) ti svuota il buffer stdin vuol dire che il compilatore fa una grande cacchiata visto che fflush() forza alla scrittura (e come potrebbe essere altrimenti?) solo i buffer in output, come dice l'ANSI C.

bye

RedDragon
05-04-2003, 19:16
Scusate se non mi sono fatto senti un per un p di tempo.
Ho risolto il problema mettendo insieme quello che mi avete detto e quello che s io e sono riuscito a imporre solo due caratteri di scelta: 'y' e 'n'.
Grazie.
;)

l.golinelli
06-04-2003, 14:21
Potevi anche postare il codice cos poteva servire per un'altra volta o per qualcun'altro...

:ciauz:

Loading