Passiamo ora a considerare una famiglia di programmi dedicati all'elaborazione di dati di tipo carattere, la libreria standard fornisce diverse funzioni per leggere o scrivere un carattere alla volta: getchar e putchar sono le piu semplici.
getchar legge il prossimo carattere in ingresso e ne restituisce il valore
putchar visualizza un carattere per ogni chaiamata
Iniziamo per capire meglio:
C++ Programming
#include <stdio.h>
int main()
{
int a;
a = getchar();
while (a != EOF)
{
putchar(a);
a = getchar();
}
}
Quindi definiamo la variabile a (potete usare a come potete usare c,b, ecc...)
Poi iniziamo il nostro ciclo, while"quando"->(a != EOF)
EOF? EOF sta per End of file"Fine del file"
Quindi quando a "è diverso"/"non è uguale a" EOF
putchar(a); appunto "scrivi" l'argomento che in questo caso è a
infine a = getchar(); definiamo a, cosi da scrivere solo il prossimo valore.
P.S sinceramente non capisco perche il libro dica di definire a = getchar(); due volte... funziona benissimo anche facendolo una sola volta, ma speriamo un aiuto da parte di Digger o Skyline.. vabbè, sorvoliamo.
Ora vediamo un altro metodo piu corto e semplice di fare lo stesso programma:
C++ Programming
#include <stdio.h>
int main()
{
int a;
while ((a = getchar()) != EOF)
putchar(a);
}
a differenza di prima mettiamo tutto dentro while, cosa che risulta molto piu facile da capire, quindi quando a = getchar() è diverso dalla fine del file allora scrivi a (getchar e putchar "leggono" e "scrivono" nella maggior parte delle volte cosa noi scriviamo tramite tastiera, quindi all'interno del programma scrivete qualcosa e premete invio, cosi capirete
![Asd Asd](https://hackmix.altervista.org/images/smilies/asd.gif)
)
Una cosa da notare è che != (diverso,non uguale a) ha la precedena su = (uguale) è per questo che mettiamo le parentesi nel secondo programma
Un altra cosa..
![Upside_down Upside_down](https://hackmix.altervista.org/images/smilies/upside_down.png)
P) al posto di putchar si puo anche mettere printf.