Putchar, scrivere un carattere con la funzione putchar in C

Nel linguaggio C la funzione putchar permette di scrivere un singolo carattere (unsigned char) sullo stdout (standard output). La putchar può essere vista come l’operazione inversa effettuata dalla funzione getchar, infatti, quest’ultima permette di leggere un carattere dal stdin. Di seguito viene riportata la sintassi della funzione putchar:



int putchar(int carattere);

A differenza della getchar, la funzione putchar richiede un parametro, ovvero il carattere da scrivere sullo standard output. Possiamo notare che il parametro richiesto è di tipo int, questo è dovuto al fatto che ciascun carattere corrisponde ad un specifico valore intero, visualizzabile in una tabella ASCII.

Oltre al parametro, la sintassi della funzione risulta essere identica alla sintassi della funzione getchar, infatti anche la putchar restituisce un intero corrispondente al carattere unsigned char scritto, effettuando il casting ad una variabile di tipo int oppure di EOF in caso di fine o di errore.

Esempio di utilizzo della funzione putchar in C

Possiamo utilizzare la funzione putchar per stampare a schermo il carattere inserito precedentemente da un utente.
Dato che la funzione putchar accetta solamente un carattere come parametro di input, possiamo utilizzare la funzione getchar per leggere solamente un carattere.



#include <stdio.h>

int main(){
    char c;
    printf("Inserisci un carattere: ");
    c = getchar();
    
    printf("Hai inserito: ");
    putchar(c);

    return 0;
}

Esempio scrittura di più caratteri con la funzione putchar in C

Il programma scritto nell’esempio precedente permette di scrivere solamente un carattere per volta, limite dovuto alla funzione putchar stessa. Per poter ovviare a questo problema possiamo fare uso di un ciclo, ad esempio il ciclo while o do while, tramite cui ad ogni iterazione eseguiamo la putchar, avendo quindi la possibilità di scrivere più caratteri sullo stdout. Chiaramente trattandosi di un ciclo abbiamo bisogno di definire l’espressione di controllo per evitare cicli infiniti.

Di seguito riprendiamo l’esempio visto nella pagina della funzione getchar, con l’unica differenza di utilizzare la funzione putchar per stampare a schermo i caratteri inseriti da parte dell’utente fino a che non viene premuto il tasto invio, ovvero non viene inserito il carattere newline '\n'.



#include <stdio.h>

int main(){
    char c;
    printf("Inserisci nome: ");
    while((c = getchar()) != '\n'){
        putchar(c);
    }

    return 0;
}

Ovviamente per effettuare il ciclo si può utilizzare anche il ciclo for, come nel seguente esempio:



#include <stdio.h>

int main(){
    for(char c='A'; c<='z'; c++){
        putchar(c);
    }
    return 0;
}


ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz

Indice pagine linguaggio C: