La fonction printf

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *