
In questa lezione studieremo come utilizzare le funzioni di input e output in linguaggio C.
Le funzioni di input
Le funzioni di input in C che analizzeremo sono scanf, getc e getchar.
scanf()
La funzione scanf consente di acquisire una sequenza di caratteri (lettere o cifre) dalla tastiera e di memorizzarli all’interno di opportune variabili.
Sintassi
scanf(<StringaDiFormato>,[,<Variabile]…)
StringaDiFormato rappresenta lo specificatore di formato ed è introdotta dal simbolo %
Variabile rappresenta il nome della variabile all’interno della quale dovrà essere memorizzato il dato proveniente dalla tastiera.
Specificatore di formato
Specificatore di formato | Espresssione | Visualizza sul monitor |
%c | char | carattere singolo |
%d (%i) | int | intero decimale con segno |
%e (%E) | float o double | formato esponenziale |
%f | float o double | reale con segno |
%g (%G) | float o double | utilizza %f o %e in base alle esigenze |
%0 | int | valore in base 8 senza segno |
%p | pointer | valore di una variabile puntatore |
%s | array of char | stringa (sequenza) di caratteri |
%u | int | intero senza segno |
%x (%X) | int | valore in base 16 senza segno |
Es: scanf(“%d”, &base)
Il simbolo & davanti alla variabile indica l’indirizzo di memoria in cui si trova la variabile base.
Si interpreta in questo modo: leggi un dato intero e collocalo nella posizione di memoria il cui indirizzo è &base.
Es: scanf(“%d %d”, &x, & y)
Questa istruzione acquisisce due numeri interi memorizzate nelle variabili x e y
L’omissione di & non comporta nessun messaggio di errore da parte del compilatore, ma comporta degli errori nei risultati.
getc()
La funzione getc legge un carattere dal dispositivo standard e lo restituisce convertito in intero.
Esempio
#include <stdio.h> main () {
char c; c=getc(stdin); //viene letto un carattere da tastiera (standard input stdin) }
Questa funzione non era annoverata nello standard ANSI C.
getchar()
La funzione getchar legge un carattere dalla tastiera.
Esempio:
#include <stdio.h>
main () {
char c; c = getchar(); }
Le funzioni di output
Le funzioni di output in C che studieremo sono: printf, putc e putchar.
printf()
La forma sintattica è la seguente:
printf(<StringaDiFormato>,{,<Espressione>})
Invia al dispositivo di output il messaggio posto tra doppi apici.
Es: printf(“Base: %d”, base)
Stampa a video il valore intero della base
La sequenza di escape
Le sequenze di escape sono dei caratteri che non vengono visualizzati, ma contribuiscono a formattare il testo. Tutte le sequenze di escape iniziano con il carattere di backslash (\) e sono interpretate come un singolo carattere.
Sequenza di escape | Descrizione |
\n | nuova riga (new line) |
\t | tabulazione (tab) |
\a | segnale sonoro (alert) |
\f | nuova pagina (form feed) |
\r | ritorno a capo della stessa riga |
\v | tabulazione verticale |
\b | una battuta indietro (backspace) |
\\ | barra rovesciata (backslash) |
\’ | apice singolo |
\” | doppi apici |
\? | punto di domanda |
\0 | fine stringa |
\<CifraOttale> | numero ottale |
\<CifraEsadecimale> | numero esadecimale |
putc()
Se vi è la necessità di inviare l’output ad un dispositivo diverso dal monitor, si utilizza la funzione putc che invia un singolo carattere a uno specifico dispositivo di uscita.
Esempio:
#include <stdio.h> main () { char c='a'; putc(c,stdprn); //output viene inviato alla stampante }
putchar()
La funzione putchar invia un carattere a stdout.
Esempio
#include <stdio.h> main () { char c='a'; putchar(c); }