Friday, December 13th 2019

Input Da Tastiera in C con scanf

Impariamo come utilizzare l’istruzion scanf per leggere l’input da tastiera.

Programma C convertitore da pollici a centimetri

Analizziamo questo semplice programma che converte un valore da pollici a centimetri.

#include <stdio.h>

int main(){
    double pollici;
    double centimetri;

    printf("Inserisci il valore in pollici: ");
    scanf("%lf",&pollici);

    //Verifico che l'input non sia negativo
    if( pollici >= 0 ){
        //2.54 è il fattore di conversione
        centimetri = pollici * 2.54;
        printf("Il valore equivale a %lf cm",centimetri);
    }
    else{
        printf("Errore, hai inserito un numero negativo!");
    }

    return 0;
}

Eseguiamo il programma, il risultato è questo:

Inserisci il valore in pollici: _

In questo momento il nostro programma è in attesa di un’input dall’utente. Inserisco quindi 10 con la tastiera e premo invio.

Il valore equivale a 25.40 cm

Cosa è successo?

Scopriamo insieme come funziona il programma:

  • Dichiaro due variabili di tipo double: pollici e centimetri.
  • Chiedo all’utente di inserire un valore con printf
  • Leggo l’input dell’utente con scanf e lo salvo in pollici
  • Se pollici è maggiore o uguale a 0:
    • Assegno a centimetri il valore convertito di pollici moltiplicato per il fattore di conversione (2.54)
    • Stampo centimetri
  • Se pollici è minore di 0:
    • Stampo un messaggio di errore

Utilizzo di scanf

L’ istruzione scanf ci permette di leggere un valore inserito dall’utente tramite tastiera. La sintassi è identica a printf se non per un piccolo particolare: l’utilizzo dell’operatore di referenziazione, di cui parleremo più avanti. Anche scanf, come printf è contenuta in stdio.h.

utilizzo di scanf per input C

E’ buona regola controllare sempre l’input inserito dall’utente prima di utilizzarlo. Tralasciare questo passo potrebbe portare ad un crash del programma. In questo caso è stato fatto il controllo per verificare che l’input non fosse negativo.