Maîtriser l'entrée/sortie en C : scanf() et printf() expliqués
Entrée/Sortie (E/S) en C
Ce tutoriel vous guide à travers l'utilisation de scanf() pour capturer l'entrée utilisateur et printf() pour présenter la sortie, avec des exemples clairs et des bonnes pratiques.
Vidéo : Obtenir l'entrée utilisateur en programmation C
Regardez la vidéo accompagnatrice pour voir des démonstrations en direct de scanf() en action.
Sortie en C
La fonction printf() est l'outil principal pour envoyer du texte formaté vers la console. Voici des exemples illustratifs.
Exemple 1 : Sortie de texte basique
#include <stdio.h>
int main() {
printf("Programmation C");
return 0;
}
Sortie
Programmation C
Ce programme imprime une chaîne simple. Points clés :
- La fonction
main()est obligatoire ; l'exécution du programme commence ici. - Incluez
stdio.hpour accéder àprintf(). - Le
return 0;optionnel signale une completion réussie.
Exemple 2 : Sortie d'entier
#include <stdio.h>
int main() {
int testEntier = 5;
printf("Nombre = %d", testEntier);
return 0;
}
Sortie
Nombre = 5
Le spécificateur %d injecte la valeur entière dans la chaîne de sortie.
Exemple 3 : Sortie à virgule flottante
#include <stdio.h>
int main() {
float nombre1 = 13.5;
double nombre2 = 12.4;
printf("nombre1 = %f\n", nombre1);
printf("nombre2 = %lf", nombre2);
return 0;
}
Sortie
nombre1 = 13.500000 nombre2 = 12.400000
Utilisez %f pour float et %lf pour les valeurs double.
Exemple 4 : Sortie de caractère
#include <stdio.h>
int main() {
char chr = 'a';
printf("caractère = %c", chr);
return 0;
}
Sortie
caractère = a
Affichez un caractère unique avec %c.
Entrée en C
La fonction scanf() lit des données formatées depuis l'entrée standard, généralement le clavier. Voici des exemples pratiques.
Exemple 5 : Entrée/Sortie d'entier
#include <stdio.h>
int main() {
int testEntier;
printf("Entrez un entier : ");
scanf("%d", &testEntier);
printf("Nombre = %d", testEntier);
return 0;
}
Sortie
Entrez un entier: 4 Nombre = 4
L'opérateur d'adresse & fournit à scanf() l'emplacement mémoire pour stocker l'entrée de l'utilisateur.
Exemple 6 : Entrée/Sortie float et double
#include <stdio.h>
int main() {
float num1;
double num2;
printf("Entrez un nombre : ");
scanf("%f", &num1);
printf("Entrez un autre nombre : ");
scanf("%lf", &num2);
printf("num1 = %f\n", num1);
printf("num2 = %lf", num2);
return 0;
}
Sortie
Entrez un nombre: 12.523 Entrez un autre nombre: 10.2 num1 = 12.523000 num2 = 10.200000
Exemple 7 : Entrée/Sortie de caractère
#include <stdio.h>
int main() {
char chr;
printf("Entrez un caractère : ");
scanf("%c", &chr);
printf("Vous avez entré %c.", chr);
return 0;
}
Sortie
Entrez un caractère: g Vous avez entré g.
Un caractère est représenté en interne par sa valeur entière ASCII ; l'imprimer avec %c restaure le symbole original.
Exemple 8 : Affichage de la valeur ASCII
#include <stdio.h>
int main() {
char chr;
printf("Entrez un caractère : ");
scanf("%c", &chr);
printf("Vous avez entré %c.\n", chr);
printf("Valeur ASCII est %d.", chr);
return 0;
}
Sortie
Entrez un caractère: g Vous avez entré g. Valeur ASCII est 103.
Gestion de plusieurs entrées
Collecter plusieurs valeurs en un seul appel scanf() est efficace et concis.
#include <stdio.h>
int main() {
int a;
float b;
printf("Entrez un entier puis un float : ");
scanf("%d%f", &a, &b);
printf("Vous avez entré %d et %f", a, b);
return 0;
}
Sortie
Entrez un entier puis un float: -3 3.4 Vous avez entré -3 et 3.400000
Spécificateurs de format pour E/S
Ci-dessous se trouve une référence concise pour les types de données C courants et leurs spécificateurs printf() / scanf().
%d–int%f–float%lf–double%c–char
| Type de données | Spécificateur de format |
|---|---|
int | %d |
char | %c |
float | %f |
double | %lf |
short int | %hd |
unsigned int | %u |
long int | %li |
long long int | %lli |
unsigned long int | %lu |
unsigned long long int | %llu |
signed char | %c |
unsigned char | %c |
long double | %Lf |
Langue C
- Fondamentaux C# : Entrées et sorties essentielles
- Maîtriser l'entrée/sortie en C++ : Guide pratique
- Maîtriser les E/S et l'importation de modules en Python : Guide pratique
- Entrées/sorties de fichiers Python : maîtriser les opérations sur les fichiers
- Maîtriser l'entrée/sortie Java : Afficher, lire et formater vos données
- Axiomtek IPS960-511-PoE : contrôleur vision tout-en-un robuste pour inspection industrielle
- acceed série EDAM-4200 : Modules E/S intégrés pour communication de données évolutive et fiable
- Maîtriser les flux C++ : cout, cin, cerr, clog – Guide pratique
- Maîtriser les verrous D : Conception, Fonctionnement et Différences Clés