Lire les entrées utilisateur en C

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à lire les entrées utilisateur en langage de programmation C à l'aide de la fonction scanf(). La fonction scanf() est un outil puissant pour lire les entrées des utilisateurs et est définie dans la bibliothèque standard d'entrée/sortie stdio.h. Le langage C est un langage fortement typé qui prend en charge différents types de données. Tout au long de ce laboratoire, nous nous concentrerons sur l'utilisation des types de données char et int pour lire et afficher les entrées utilisateur.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 81%. Il a reçu un taux d'avis positifs de 97% de la part des apprenants.

Configurer l'environnement de développement

Dans cette étape, nous allons configurer notre environnement de développement et créer un nouveau fichier C pour notre programme.

  1. Ouvrez un terminal dans le WebIDE. Vous devriez être dans le répertoire /home/labex/project par défaut. Si vous n'êtes pas sûr, vous pouvez taper pwd (afficher le répertoire de travail) pour vérifier votre emplacement actuel.

  2. Créez un nouveau fichier nommé user_input.c en utilisant la commande suivante :

    touch user_input.c

    La commande touch crée un nouveau fichier vide s'il n'existe pas, ou met à jour l'horodatage d'un fichier existant.

  3. Ouvrez le fichier user_input.c dans l'éditeur du WebIDE. Vous pouvez le faire en cliquant sur le nom du fichier dans l'explorateur de fichiers à gauche du WebIDE, ou en utilisant l'option Ouvrir un fichier dans le menu Fichier.

Écrire la structure de base du programme

Dans cette étape, nous allons écrire la structure de base de notre programme en langage C.

  1. Dans le fichier user_input.c, ajoutez le code suivant :

    #include <stdio.h>
    
    int main() {
        // Nous allons ajouter notre code ici
        return 0;
    }

    Analysons ce code :

    • #include <stdio.h> indique au compilateur d'inclure la bibliothèque standard d'entrée/sortie. Cette bibliothèque contient des fonctions telles que printf() et scanf() que nous utiliserons pour les entrées et les sorties.
    • int main() est la fonction principale où notre programme commence à s'exécuter. Tout programme en langage C doit avoir une fonction principale.
    • Les accolades { } définissent le corps de la fonction principale.
    • return 0; à la fin de la fonction principale indique que le programme s'est exécuté avec succès.
  2. Enregistrez le fichier. Vous pouvez le faire en appuyant sur Ctrl+S ou en sélectionnant Enregistrer dans le menu Fichier.

Implémenter la saisie de nom par l'utilisateur

Maintenant, implémentons la fonctionnalité permettant de lire le nom de l'utilisateur.

  1. Modifiez le fichier user_input.c pour inclure le code suivant à l'intérieur de la fonction main() :

    #include <stdio.h>
    
    int main() {
        char name[100];
    
        printf("Enter your name: ");
        scanf("%s", name);
    
        printf("Hello, %s!\n", name);
    
        return 0;
    }

Voici ce que chaque nouvelle ligne fait :

  • char name[100]; déclare un tableau de caractères (une chaîne de caractères) pouvant contenir jusqu'à 99 caractères plus le caractère de fin de chaîne (null terminator).
  • printf("Enter your name: "); invite l'utilisateur à entrer son nom.
  • scanf("%s", name); lit une chaîne de caractères à partir de l'entrée utilisateur et la stocke dans le tableau name. Le spécificateur de format %s est utilisé pour lire les chaînes de caractères.
  • printf("Hello, %s!\n", name); affiche un message de salutation en utilisant le nom entré par l'utilisateur. Le %s dans la chaîne de format est remplacé par la valeur de name.
  1. Enregistrez le fichier.

Ajouter la saisie de l'âge

Étendons notre programme pour également demander l'âge de l'utilisateur.

  1. Modifiez le fichier user_input.c pour inclure la saisie de l'âge :

    #include <stdio.h>
    
    int main() {
        char name[100];
        int age;
    
        printf("Enter your name: ");
        scanf("%s", name);
    
        printf("Enter your age: ");
        scanf("%d", &age);
    
        printf("Hello, %s! You are %d years old.\n", name, age);
    
        return 0;
    }

Voici ce qui est nouveau :

  • int age; déclare une variable entière pour stocker l'âge de l'utilisateur.
  • Nous avons ajouté une autre paire printf() et scanf() pour demander et lire l'âge.
  • scanf("%d", &age); lit un entier à partir de l'entrée utilisateur. Le spécificateur de format %d est utilisé pour les entiers. Notez le & avant age - cela est dû au fait que scanf() a besoin de l'adresse mémoire de la variable pour stocker l'entrée.
  • Le dernier printf() inclut maintenant l'âge dans le message de sortie.
  1. Enregistrez le fichier.

Compiler et exécuter le programme

Dans cette étape finale, nous allons compiler notre programme en langage C et l'exécuter pour voir les résultats.

  1. Dans le terminal, accédez au répertoire contenant votre fichier user_input.c :

    cd /home/labex/project

    Cette étape garantit que vous êtes dans le bon répertoire. Si vous y êtes déjà, vous verrez un message indiquant "cd: no such file or directory", que vous pouvez ignorer.

  2. Compilez le programme en utilisant le compilateur GCC :

    gcc user_input.c -o user_input

    Cette commande indique à GCC de compiler user_input.c et de créer un exécutable nommé user_input. Si votre code contient des erreurs, vous verrez des messages d'erreur ici. Dans ce cas, retournez dans votre code, corrigez les erreurs et essayez de compiler à nouveau.

  3. Exécutez le programme compilé :

    ./user_input

    Le ./ indique au shell de chercher le programme dans le répertoire actuel.

Terminal compilant un programme en C
  1. Le programme vous invitera à entrer votre nom et votre âge. Tapez vos réponses et appuyez sur Entrée après chaque saisie.

  2. Vous devriez voir un message de salutation personnalisé avec votre nom et votre âge.

Si vous rencontrez des problèmes, vérifiez votre code pour les fautes de frappe et assurez-vous d'avoir enregistré toutes les modifications avant de compiler.

Résumé

Dans ce laboratoire (lab), vous avez appris à lire les entrées utilisateur en langage C en utilisant la fonction scanf(). Vous avez créé un programme qui invite les utilisateurs à saisir leur nom et leur âge, lit ces entrées et affiche un message de salutation personnalisé. Cet exercice vous a initié aux opérations de base d'entrée/sortie en C, à la manipulation de différents types de données (tableaux de caractères char pour les chaînes de caractères et int pour les entiers), ainsi qu'au processus de compilation et d'exécution d'un programme en C.

Points clés à retenir :

  1. La fonction scanf() est utilisée pour lire les entrées de l'utilisateur.
  2. Différents spécificateurs de format (%s pour les chaînes de caractères, %d pour les entiers) sont utilisés en fonction du type d'entrée que vous lisez.
  3. Lorsque vous lisez des entiers ou d'autres types non chaînes de caractères avec scanf(), vous devez utiliser l'opérateur & pour passer l'adresse de la variable.
  4. Le processus de compilation transforme votre code en langage C en un programme exécutable.

Ces compétences fondamentales constituent la base pour des tâches de programmation en C plus complexes et seront précieuses au fur et à mesure que vous continuerez d'apprendre et de développer vos capacités de programmation. N'oubliez pas que la pratique est essentielle en programmation - essayez de modifier ce programme ou de créer de nouveaux programmes pour consolider ce que vous avez appris!