Guida C: Capitolo 5/b

7 03 2010

#include <stdio.h>

main()
{
char a;
int i=0;
while (i<8)
{
printf (“inserisci carattere\n”);
while ( (a=getchar())!= ‘\n’ )
{
printf (“%c\n”, a);
}
i++;
}

}

Il codice di cui sopra contiene due cicli while annidati.

Il primo serve a ripetere il ciclo 8 volte.
Il secondo serve ad acquisire un carattere.
Come vedete, l’acquisizione avviene direttamente nelle condizioni del ciclo.
Ho scelto di usare getchar() perchè restituisce direttamente il valore acquisito mettendolo nella variabile, mentre con scanf() primo si acquisisce un valore, che poi viene messo tramite un puntatore nella variabile.

In questo modo posso inserire la condizione != ‘\n’. Infatti quando si acquisisce un carattere con scanf o getchar, il programma acquisisce anche il valore passato dalla pressione del tasto invio. E’ per questo che nell’esercizio precedente il ciclo “saltava” un passaggio ad ogni ripetizione.

Questo non avviene con le variabili numeriche.

­#include <stdio.h>
main()
{
char vett[10];
char a;
int i=0;
while (i<10)
{
printf (“inserisci carattere\n”);
while ( (a=getchar())!= ‘\n’ )
{
vett[i]=a;
}
i++;
}
i=0;
while(i<10)
{
printf (“%c\n”, vett[i]);
i++;
}
}

Acquisizione di caratteri in un vettore.








Iscriviti

Get every new post delivered to your Inbox.