Documentation printf et scanf
1. Introduction⚓︎
Cette documentation décrit les usages des fonctions printf et scanf en langage C, ainsi que les formats utilisés pour la saisie et l'affichage de différents types de données. Des exemples de code sont fournis pour chaque cas.
2. Syntaxe générale⚓︎
printf⚓︎
Affiche du texte formaté à l'écran.
Le format est interprété de la manière suivante :
- les caractères ordinaires sont affichés tel quel
- certains caractères précédés anti-slash (
\) permettent de faire de la mise en page (tabulation, passage à la ligne, ...) - une séquence commençant par le caractère
%sera remplacer à l'affichage par la valeur d'un argument. Le caractère qui suit le % précise le type de l'argument et la manière dont il sera affiché. La première séquence sera remplacée par la valeur du premier argument suivant le format. La seconde le sera par la valeur du second argument suivant le format et ainsi de suite
scanf⚓︎
scanf permet de lire et d'interpréter du texte saisie par l'utilisateur au clavier et les stocke dans les variables passées par adresse.
Comme printf, cette fonction utilise un format suivi d'un nombre variable d'arguments que scanf devra lire.
Comme ces arguments vont être modifiés par la fonction, il faut toujours lui envoyer des pointeurs sur les variables à lire (&Var).
3. Exemples par type⚓︎
| Déclaration | Lecture scanf |
Écriture printf |
|---|---|---|
int i; |
scanf("%d", &i); |
printf("%d", i); |
unsigned int i; |
scanf("%u", &i); |
printf("%u", i); |
short j; |
scanf("%hd", &j); |
printf("%d", j); |
unsigned short j; |
scanf("%hu", &j); |
printf("%u", j); |
long k; |
scanf("%ld", &k); |
printf("%ld", k); |
unsigned long k; |
scanf("%lu", &k); |
printf("%lu", k); |
float l; |
scanf("%f", &l); |
printf("%f", l); |
double m; |
scanf("%lf", &m); |
printf("%f", m); |
long double n; |
scanf("%Lf", &n); |
printf("%Lf", n); |
char o; |
scanf("%c", &o); |
printf("%c", o); |
char p[10]; |
scanf("%9s", p); |
printf("%s", p); |
char p[10]; |
scanf("%9s", &p[0]); |
printf("%s", p); |
char c; |
scanf("%hhd", &c); |
printf("%hhd", c); |
unsigned char c; |
scanf("%hhu", &c); |
printf("%hhu", c); |
4. Séquences d’échappement⚓︎
| Séquence | Signification | Exemple de code | Affichage à l’écran |
|---|---|---|---|
\n |
Nouvelle ligne | printf("Bonjour\nMonde"); |
Bonjour Monde |
\' |
Apostrophe | printf("C\'est bon"); |
C'est bon |
\" |
Guillemets doubles | printf("\"Citation\""); |
"Citation" |
\\ |
Antislash | printf("C:\\Dossier"); |
C:\Dossier |
%% |
Affiche un pourcentage | printf("100%% certain"); |
100% certain |
\t |
Tabulation horizontale | printf("Nom\tPrénom"); |
Nom Prénom |
\b |
Retour arrière | printf("abc\b"); |
ab (le 'c' est effacé) |
\r |
Retour chariot | printf("Début\rFin"); |
Finut (écrase "Déb") |
\a |
Bip sonore | printf("\a"); |
🔈 (bip sonore, si activé) |