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); 
}


Alcuni link utili

Introduzione al linguaggio C

Le variabili in C

Le costanti in C

Printf

Tipi di operatori

Operatori di confronto

Stdin

Le funzioni di input e output

Scanf

Area di un rettangolo in C

Media in C

Casting in C