Vous êtes sur la page 1sur 7

CHAPITRE

Les fonctions d’entrées /sorties

I- Introduction:

II- La fonction Scanf


III- La fonction printf

IV- La macro getchar


V- La macro putchar

VI- La fonction gets


VII- La Fonction puts

VIII- La fonction getch

IX- Application :

Jihen Hedhli Page 1


I- Introduction:

Ce sont les fonctions responsables à la lecture des données et l’affichage des résultats .Elles
sont nécessaires à tout programme. Des bibliothèques de fonctions de base étaient définies par
la norme ANSI et standardisées par la suite. On cite à titre indicatif, la bibliothèque Stdio.h.

II- La fonction Scanf

 Syntaxe:

Scanf (<format>, <liste d’adresse d’argument>);

 Description :

La fonction scanf permet de faire une lecture formatée du flux standard d’entrée (le clavier).

Elle lit les caractères en entrée, les interprète suivant la spécification de format décrites dans

la chaîne format et place les résultats dans les arguments spécifiés .

 Spécificateur de format:

Il est introduit par le caractère % et se termine par le caractère de type de conversion suivant
ce format: % [largeur] type

-largeur : le nombre de caractère qui sera lu

-type : le type de l’objet pointé par argument

d :entier signé

f : réel

c : caractère

Exemple :

o Scanf(« %d %d », &n,&p); n=12 , p=25

o Scanf(« %3d %3d »,&n,&p);

Le 3 du code format impose une longueur maximale de l’information qui sera lue.

Exemple:

Si on lis 123456@ alors n prendra 123 et p prendra 456.

Jihen Hedhli Page 2


Scanf se limite aux 3 premiers chiffres pour constituer la valeur de n, elle saute les espaces.

Par exemple, la lecture de la valeur ^^^ 234 permet d’affecter dans n la valeur de 234.

o Scanf (« %d %c», &n, &c) ;

Exemple:

Si on lit 12a, la variable n prendra 12 et la variable c prendra a.

En effet, Lors du traitement du code « %d », scanf rencontre les caractère 1 puis 2 puis a,

Ce caractère a ne convient pas à la fabrication d’une valeur entière, scanf interrompe son
exploration et fournit la valeur 12 à n. le traitement du code %c amène scanf à prendre ce
caractère courant et l’affecte à la variable c.

o Scanf(«%f»,&x);

123, 1.23 sont acceptés.

«%f » accepte indifféremment un nombre écrit sous forme entière ou en notation décimale.

III- La fonction printf

 Syntaxe:

Printf (<format>, <une liste d’argument>);

 Description :

La fonction printf permet l’écriture sur le flux standard de sortie (l’écran).La chaîne format
peut contenir à la fois :

- Des caractères à afficher.

- Des spécifications de format.

Il devra y avoir autant d’arguments à la fonction printf qu’il y a de spécifications de format.

 Spécificateurs de format:

Il est introduit par le caractère % et se termine par le caractère de type de conversion suivant
ce format: % [largeur] type

- largeur: le nombre de caractère qui sera affiché.

- type : le type de conversion de l’argument.

Jihen Hedhli Page 3


d :entier signé

f : réel

c : caractère

Exemple:

o Printf(« nomhre= %d valeur %d F», n+l, x*y);

Affiche:

- le texte : "nombre ="

- la valeur de l’expression (n+l), suivant le premier code format %d,

- le texte : "valeur"

- la valeur de l’expression(x*y), suivant le code format %d

- le texte "F"

Exemple:

o Printf(« %3d »,n) ;

Le code %3d affiche une valeur de type entier sur 3 caractères. Si n est égale 74 alors ça
s’écrit ^74.

o Printf (« %f », x) ;

Le code %f affiche la valeur de x dans la notation décimal. En général, il présente 6 chiffres


après le point décimal.

Si x= 1,2345 alors x s’affiche sous cette valeur 1,234500.

o Printf (« %10.3f», x);

Le 10 précise la longueur du nombre (partie entière + partie décimale). Le 3 est une précision
qui spécifie le nombre de chiffre souhaité après la virgule.

o Printf(« %8.*f» ,n, x) ;

Si n=1 et x=1,2345 alors l’affichage est le suivant : ^^^^^1,2.

Si n=3 et x=1,2345 alors l’affichage est le suivant : ^^^1,234.

Jihen Hedhli Page 4


Le caractère * employé à la place d’une indication de longueur ou précision signifie que la
valeur effective est fournie dans la liste d’expression.

On demande dans cet exemple d’attribuer à la valeur de la précision * la valeur de n (l ensuite


3).

IV- la macro getchar( ):

La différence entre une macro et une fonction se résume dans les points suivants :

- Les instructions d’une macro sont incorporées dans le programme source à chaque fois
qu’on l’appelle.

-La fonction ne se trouve incorporée qu’une seule fois quelque soit le nombre d’appel.

- La macro conduit à optimiser le temps d’exécution d’un programme tandis que la fonction
conduit à optimiser la taille du code du programme.

 Description:

La macro getchar( ) permet la lecture d’un caractère sur l’entrée standard (clavier).

 Valeur de retour:

Cette macro retourne :

-En cas de succès : la valeur du caractère lu.

-En cas d’erreur : la constante EOF (-1).

Remarque :

L’appel de cette macro est plus rapide que l’appel d’un scanf (« %c », &c), puisqu’ il n y a
pas d’analyse de la chaîne de format.

Cette macro est défini dans la bibliothèque stdio.h.

C= getchar( ); équivalente scanf(« %c »,&c) ;

V- la macro putchar( ):

 Description

La macro putchar( ) permet l’écriture d’un caractère sur la sortie standard.

putchar ( c); équivalente printf(« %c », c)

Jihen Hedhli Page 5


L’exécution est plus rapide avec putchar( ) puisqu’il ne fait pas appel à l’analyse de la chaîne
de format.

VI- La fonction gets ( ):

 Description

La fonction gets permet la lecture d’une chaîne de caractère terminé par ‘\n’ sur l’entrée
standard et place le résultat dans un tableau en remplaçant ‘\n’ par ‘\0’.

 Valeur retournée:

Elle retourne :

- En cas d’erreur, l’adresse NULL.

-En cas de succès, l’adresse du tableau contenant les caractères.

 Syntaxe:

gets (tab) ;

Avec tab est l’adresse du tableau qui va recevoir les caractères lus. Un caractère ‘\0’ est placé
à la fin du tab (‘\n’ n’est pas recopié dans le tableau).

La fonction scanf (« %s », s) ne permet pas de lire des chaînes de caractère contenant des
espaces (l’espace pour scanf est sauté) alors qu’avec gets, seule le caractère ‘\n’ sert de
délimiteur.

VII- La Fonction puts ( ):

 Description:

La fonction puts permet l’écriture, sur l’unité standard de sortie, d’une chaîne spécifiée entre
parenthèse suivie d’une fin de ligne (‘\n’).

 Syntaxe

puts ( tab) ;

Avec tab est l’adresse de la chaîne de caractère à écrire.

Jihen Hedhli Page 6


VIII- La fonction getch ( ):

La fonction getch attend qu’un caractère soit frappé au clavier, aucun caractère n’est fourni en
"écho" lors de la frappe.

C=getch( ) ;

IX- Application :

Ecrire un programme qui permet de demander d’un citoyen son nom, son prénom et sa ville,
ensuite il affiche le message suivant :

"Bonjour cher X Y qui habitais à Z".En utilisant les fonctions vue ci_dessus.

N.B : les variables nom, prénom et villes sont des chaînes de caractères (un tableau de
caractère), dont on donne la déclaration char nom_variable[taille de la chaine].

X- Correction :

Main( )

char nom [20] ;

char prénom [20] ;

char ville [15];

printf(« donner votre nom et prénom s.v.p»);

gets(nom) ;

gets(prenom) ;

printf(« donner votre ville svp »);

gets(ville) ;

printf( " bonjour cher %s %s ",nom, prénom); /* "%s" est le code format des chaînes de
caractères.*/

printf(« tu habites à ») ;

puts(ville) ;

Jihen Hedhli Page 7

Vous aimerez peut-être aussi