0Pricing
C Academy · Leçon

scanf et entrée

Lisez les entrées utilisateur

scanf et entrée est une leçon C Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C Academy comprend 4 leçons au total.

Fonctionnement de la lecture formatée

scanf lit les données formatées saisies par l’utilisateur. Il utilise les mêmes spécificateurs que printf.

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

L’opérateur d’obtention d’adresse

scanf a besoin de l’adresse d’une variable pour pouvoir y stocker la valeur. C’est pourquoi vous écrivez &x.

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

Lire un entier

Pour lire un entier, transmettez %d et l’adresse d’un int.

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

Lire un nombre à virgule flottante

Pour lire un float, utilisez %f ; pour un double, utilisez %lf.

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

Lire plusieurs valeurs

Un seul appel à scanf peut lire plusieurs valeurs séparées par des espaces blancs.

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

Lire un caractère

Utilisez %c pour lire un caractère. Attention : il lit également les espaces et les retours à la ligne.

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

Lire un mot

%s lit un mot délimité par des espaces blancs dans un tableau de caractères. Aucun & n’est nécessaire, car le nom d’un tableau est déjà une adresse.

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

Valeur renvoyée par la lecture formatée

scanf renvoie le nombre d’éléments qu’il a lus avec succès. Vérifiez cette valeur pour détecter une entrée incorrecte.

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

Ignorer les espaces initiaux

Les spécificateurs numériques ignorent automatiquement les espaces blancs initiaux, mais pas %c. Un espace avant %c permet de corriger ce problème.

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

Validation des entrées

Vérifiez toujours la valeur de retour avant de faire confiance aux données.

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

Assemblage

Un programme classique invite l’utilisateur, lit la valeur, puis l’utilise.

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

Vérification rapide

Testez votre compréhension de scanf.

Récapitulatif : scanf et les entrées

Vous avez appris à lire les entrées de l’utilisateur.

  • scanf utilise des spécificateurs au format de printf
  • Passez &var pour indiquer où stocker la valeur
  • Utilisez %lf pour les nombres de type double et %s pour les mots
  • Vérifiez la valeur de retour pour valider l’entrée
  • Placez une espace avant %c pour ignorer les espaces blancs

Questions Fréquemment Posées

La leçon « scanf et entrée » est-elle gratuite ?

Oui — le texte complet de « scanf et entrée » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C Academy, passe à CoddyKit PRO. Le cours C Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « scanf et entrée » ?

Lisez les entrées utilisateur Tu pratiques C Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C Academy ?

Aucune expérience préalable n'est requise. C Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « scanf et entrée » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C Academy ?

Oui. Chaque leçon C Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Spécificateurs de format de printf
  2. scanf et entrée
  3. Largeur, précision et indicateurs
  4. Pièges courants des entrées-sorties
← Retour à C Academy