0Pricing
C Academy · Lezione

scanf e input

Leggere l'input dell'utente

scanf e input è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 4 lezioni in totale.

Che cosa fa scanf

scanf legge l’input formattato digitato dall’utente. Usa gli stessi specificatori di printf.

#include <stdio.h>
int main(void) {
    int x = 0;
    /* scanf("%d", &x); */
    x = 5;
    printf("x = %d\n", x);
    return 0;
}

L’operatore indirizzo di

scanf ha bisogno dell’indirizzo di una variabile per potervi memorizzare il valore. Per questo si scrive &x.

#include <stdio.h>
int main(void) {
    int x = 42;
    int *p = &x;
    printf("value via address = %d\n", *p);
    return 0;
}

Leggere un intero

Per leggere un intero, passi %d e l’indirizzo di un int.

#include <stdio.h>
int main(void) {
    int n;
    /* scanf("%d", &n); */
    n = 7;
    printf("You entered %d\n", n);
    return 0;
}

Leggere un numero in virgola mobile

Per leggere un float usi %f; per un double usi %lf.

#include <stdio.h>
int main(void) {
    double d;
    /* scanf("%lf", &d); */
    d = 3.14;
    printf("d = %.2f\n", d);
    return 0;
}

Leggere più valori

Una sola scanf può leggere diversi valori separati da spazi.

#include <stdio.h>
int main(void) {
    int a, b;
    /* scanf("%d %d", &a, &b); */
    a = 3; b = 4;
    printf("sum = %d\n", a + b);
    return 0;
}

Leggere un carattere

Usi %c per leggere un carattere. Attenzione: legge anche gli spazi e le nuove righe.

#include <stdio.h>
int main(void) {
    char c;
    /* scanf(" %c", &c); */
    c = 'X';
    printf("char = %c\n", c);
    return 0;
}

Leggere una parola

%s legge una parola delimitata dagli spazi in un array di char. Non è necessario usare &, perché il nome di un array è già un indirizzo.

#include <stdio.h>
int main(void) {
    char word[20];
    /* scanf("%s", word); */
    word[0] = 'H'; word[1] = 'i'; word[2] = 0;
    printf("word = %s\n", word);
    return 0;
}

Valore restituito da scanf

scanf restituisce il numero di elementi letti correttamente. Lo controlli per rilevare gli input non validi.

#include <stdio.h>
int main(void) {
    int n = 5;
    int read = 1; /* pretend scanf returned 1 */
    if (read == 1)
        printf("got %d\n", n);
    return 0;
}

Ignorare gli spazi iniziali

Gli specificatori numerici ignorano automaticamente gli spazi iniziali, mentre %c non lo fa. Uno spazio prima di %c risolve il problema.

#include <stdio.h>
int main(void) {
    char c = 'Y';
    printf("Reading with \" %%c\" skips spaces\n");
    printf("c = %c\n", c);
    return 0;
}

Convalida dell'input

Verifichi sempre il valore restituito prima di considerare attendibili i dati.

#include <stdio.h>
int main(void) {
    int value = 10;
    int ok = 1;
    if (ok)
        printf("valid: %d\n", value);
    else
        printf("invalid input\n");
    return 0;
}

Mettere tutto insieme

Un programma tipico richiede un valore, lo legge e poi lo utilizza.

#include <stdio.h>
int main(void) {
    int age;
    printf("Enter age: ");
    /* scanf("%d", &age); */
    age = 20;
    printf("Next year you will be %d\n", age + 1);
    return 0;
}

Verifica rapida

Verifichi la Sua comprensione di scanf.

Riepilogo: scanf e input

Ha imparato a leggere l'input dell'utente.

  • scanf usa gli specificatori in stile printf
  • Passi &var per indicargli dove memorizzare il valore
  • Usi %lf per i double e %s per le parole
  • Controlli il valore restituito per convalidare l'input
  • Inserisca uno spazio prima di %c per ignorare gli spazi bianchi

Domande Frequenti

La lezione «scanf e input» è gratuita?

Sì — il testo completo di «scanf e input» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 4 lezioni in totale.

Cosa imparerò in «scanf e input»?

Leggere l'input dell'utente Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C Academy?

Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «scanf e input»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C Academy?

Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Specificatori di formato di printf
  2. scanf e input
  3. Larghezza, precisione e flag
  4. Problemi comuni di I/O
← Torna a C Academy