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⚓︎

printf("format", arg1, arg2, ..., argN);
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("format", &arg1, &arg2, ..., &argN);

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é)

5. Références⚓︎

  • Documentations:
  • Magali Sauvergeat