Langage C

Notification de cookies

Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Plus d'informations

Entrée et sortie en langage C

Entrée signifie fournir au programme certaines données à utiliser dans le programme et Sortie signifie afficher des données à l'écran ou les écrire sur une imprimante ou dans un fichier.

Le langage de programmation C offre de nombreuses fonctions intégrées permettant de lire une entrée donnée et d'afficher des données à l'écran lorsqu'il est nécessaire de générer le résultat.

Toutes ces fonctions intégrées sont présentes dans les fichiers d’en-tête C, nous spécifierons également le nom des fichiers d’en-tête dans lesquels une fonction particulière est définie lors de la discussion.

Les fichiers standard

La programmation en C traite tous les périphériques en tant que fichiers. Ainsi, les périphériques tels que l’affichage sont traités de la même manière que les fichiers et les trois fichiers suivants s’ouvrent automatiquement lorsqu’un programme s’exécute pour permettre l’accès au clavier et à l’écran.

Fichier standardPointeur de fichierpériphérique
Entrée standardstdinClavier
Sortie standardstdoutEcran
Erreur standardstderrEcran

 

Spécificateurs de format

Type de donnéesSpécificateur de Format
int%d
char%c
float%f
double%lf
long double%Lf

Voir types de données

 

Fonctions scanf() et printf()

Le fichier d'en-tête d'entrée-sortie standard, nommé stdio.h contient la définition des fonctions printf() et scanf(), qui sont utilisées pour afficher la sortie à l'écran et pour lire l'entrée de l'utilisateur respectivement.

printf()

La fonction printf() affiche la valeur transmise en tant que paramètre sur l'écran de la console.

Syntaxe
printf(“%X”, variableDeTypeX);
  • %X est le spécificateur de format en C. C'est un moyen d'indiquer au compilateur quel type de données se trouve dans une variable
  • variableDeTypeX : nom de variable de type X
scanf()

La méthode scanf() lit la valeur de la console selon le type spécifié.

Syntaxe
scanf(“%X”, &variableDeTypeX);
  • %X est le spécificateur de format en C. C'est un moyen d'indiquer au compilateur quel type de données se trouve dans une variable
  • & est l'opérateur d'adresse en C, qui indique au compilateur de changer la valeur réelle de cette variable(variableDeTypeX), stockée à cette adresse dans la mémoire.
Exemple 1 :
                                #include < stdio.h>

                                int main(void)
                                {
                                    int a;
                                    float b;
                                    char d;

                                    // lire et ecrire un type entier
                                    scanf("%d%",&a);
                                    printf("a=%d",a);

                                    // lire et ecrire un type réel
                                    scanf("%f",&b);
                                    printf("b=%f",b);

                                    // lire et ecrire un caractère
                                    scanf("%c",&d);
                                    printf("d=%c",d);

                                    return 0;
                                }
                            
2
a=2

3.5
b=3.5

f
d=f
Nous pouvons également limiter le nombre de chiffres ou de caractères pouvant être entrés ou sortis en ajoutant un nombre avec le spécificateur de chaîne de formatage, tel que "%1d" ou "%3s", le premier correspondant à un seul chiffre et le second. signifie 3 caractères, donc si vous essayez d'entrer 42, alors que scanf() a "%1d", il ne prendra que 4 comme entrée. de même pour la sortie.
Valeurs multiples

Voici comment vous pouvez utiliser plusieurs entrées de l'utilisateur et les afficher.

Exemple 2 :
                                #include < stdio.h>

                                int main(void)
                                {
                                    int a,b;
                                    float c;

                                    scanf("%d%d%f",&a,&b,&c);
                                    printf("a=%d - b=%d - c=%f",a,b,c);

                                    return 0;
                                }
                            
2
5
3.5
a=2 - b=5 - c=3.500000

Fonctions getchar() et putchar()

La fonction getchar() lit un caractère du terminal et le renvoie sous forme d'entier. Cette fonction ne lit qu'un seul caractère à la fois. Vous pouvez utiliser cette méthode dans une boucle si vous souhaitez lire plusieurs caractères.

La fonction putchar() affiche le caractère qui lui est passé à l'écran et renvoie le même caractère. Cette fonction affiche également un seul caractère à la fois. Si vous souhaitez afficher plusieurs caractères, utilisez la méthode putchar() dans une boucle.

Exemple 3 :
                                #include < stdio.h>

                                int main(void)
                                {
                                    int c;
                                    printf("Saisir un caractère : ");
                                    c=getchar();

                                    printf("voici votre caractère : ");
                                    putchar(c);

                                    return 0;
                                }
                            
Saisir un caractère : A
voici votre caractère : A

Fonctions gets() et puts()

La fonction gets() lit une ligne de stdin(entrée standard) dans la mémoire tampon pointée par le pointeur str, jusqu'à la terminaison de la nouvelle ligne ou EOF (fin du fichier) se produise.

La fonction puts() écrit la chaine str à la fin de la nouvelle ligne sur stdout.

 str : c'est le pointeur sur un tableau de caractères où la chaîne est stockée
Exemple 4 :
                                #include < stdio.h>

                                int main(void)
                                {
                                    char nom[20];

                                    printf("Saisir votre nom : ");
                                    gets(nom);

                                    printf("votre nom est  : ");
                                    puts(nom);

                                    return 0;
                                }
                            
Saisir votre nom : ESSADDOUKI
votre nom est : ESSADDOUKI
Différence entre scanf() et gets()

La principale différence entre ces deux fonctions est que scanf() arrête de lire les caractères lorsqu'il rencontre un espace, mais gets() lit également l'espace en tant que caractère.

Partager ce cours avec tes amis :

Rédigé par M. ESSADDOUKI

Learning a new programming language is an easy thing, but the most difficult thing is how to design efficient algorithms for real-world problems, so don't be a programmer, be a problems solver.

Cours Similaires :