La fonction printf
Pourquoi faut-il d’abord comprendre et maîtriser cette fonction ? Parce que nous l’utiliserons très souvent dans la suite de notre apprentissage du C. Son rôle est d’afficher du contenu sur la console.
1 La fonction printf
Nous l’avons déjà utilisée dans l’exemple précédent.
// Appel de printf pour afficher une chaîne ; \n représente le saut de ligne
printf("hello, world\n");
Langage du code : Arduino (arduino)
printf() : fonction standard de la bibliothèque d’affichage
printf("texte") permet de transmettre une chaîne de caractères en paramètre ; tous les caractères entre les guillemets doubles s’affichent sur la console.
Toute instruction doit se terminer par un point-virgule ;, qui marque la fin de l’instruction. Oublier le point-virgule provoque une erreur de compilation. Voici un exemple de message d’erreur :
C:\cdemo>gcc hello.c -o hello.exe
hello.c: In function 'main':
hello.c:5:29: error: expected ';' before 'return'
printf("hello, world\n")
^
;
return 0;
~~~~~~Langage du code : PHP (php)
Si nous voulons afficher plusieurs lignes de texte, nous pouvons écrire ceci :
#include <stdio.h>
main()
{
printf("Première ligne de texte\n");
printf("Deuxième ligne de texte\n");
}Langage du code : PHP (php)
2 Chaîne de caractères
Suite de caractères encadrée par des guillemets doubles anglais " ", par exemple "hello, world\n"
Dans nos exemples précédents, les chaînes étaient passées en paramètre à printf pour être affichées directement sur la console.
Une chaîne ne peut pas être coupée sur plusieurs lignes ; le code ci-dessous provoque directement une erreur de compilation :
// Mauvais exemple : chaîne coupée sur deux lignes
printf("hello, world
");
Langage du code : Arduino (arduino)
Résultat de l’erreur de compilation
C:\cdemo>gcc hello.c -o hello.exe
hello.c: In function 'main':
hello.c:6:11: warning: missing terminating " character
printf("hello, world
^
hello.c:6:11: error: missing terminating " character
printf("hello, world
^~~~~~~~~~~~~
hello.c:7:4: warning: missing terminating " character
");
^
hello.c:7:4: error: missing terminating " character
");
^~~
hello.c:8:5: error: expected expression before 'return'
return 0;
^~~~~~
hello.c:8:14: error: expected ';' before '}' token
return 0;
^
;
}Langage du code : PHP (php)
3 Caractère d’échappement \n : saut de ligne
\n est une marque propre au langage C qui représente le caractère de saut de ligne.
printf ne saute pas automatiquement de ligne : il faut ajouter manuellement \n pour que le curseur passe à la ligne suivante.
Sans \n, tout le contenu s’affiche sur une seule ligne, voir l’exemple ci-dessous :
#include <stdio.h>
int main()
{
// Sans \n : les deux textes s'affichent collés sur la même ligne
printf("hello");
printf("world");
// Avec \n : saut de ligne automatique après affichage
printf("\nhello\n");
printf("world\n");
return 0;
}Langage du code : PHP (php)
C:\cdemo>gcc hello.c -o hello.exe
C:\cdemo>hello
helloworld
hello
world
C:\cdemo>Langage du code : CSS (css)
On voit que hello et world sont collés sur la même ligne. Si vous voulez un saut de ligne après un affichage avec printf, pensez à ajouter \n. Un seul \n équivaut à appuyer une fois sur la touche Entrée ; deux \n consécutifs font deux sauts de ligne, ce qui crée une ligne vide entre les deux chaînes, comme si vous appuyiez deux fois sur Entrée dans un bloc-notes.
#include <stdio.h>
int main()
{
printf("one\n\n");
printf("two");
return 0;
}Langage du code : PHP (php)
Résultat d’exécution
C:\cdemo>gcc hello.c -o hello.exe
C:\cdemo>hello
one
two
C:\cdemo>Langage du code : CSS (css)
On peut assembler un texte sur une même ligne en plusieurs appels à printf.
Voyons un exemple :
#include <stdio.h>
int main()
{
printf("hello, ");
printf("world");
printf("\n"); // Un seul saut de ligne à la fin
}Langage du code : PHP (php)

Complément sur les erreurs courantes
#include <stdio.h>
Cette ligne d’import du fichier d’en-tête par préprocesseur ne se termine pas par un point-virgule ;
Pour utiliser la fonction printf, il faut importer #include <stdio.h>, sinon une erreur survient.