• Aucun résultat trouvé

Introduction au langage C

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction au langage C"

Copied!
10
0
0

Texte intégral

(1)

Introduction au langage C

Les entrées-sorties

1

ère

année Génie Informatique Dr Daouda Traoré

Université de Ségou

email: [email protected]

(2)

Introduction

Les entrées-sorties permettent d’afficher des informations à l’écran ou de les lire au clavier ou d’échanger des informations avec des fichiers.

Nous nous limiterons aux

entrées-sorties standards

(affichage sur l’écran et lecture au clavier)

Nous allons étudier les fonctions printf et scanf fournies par le

langage C. Elles permettent d’afficher des informations à l’écran

ou d’en lire au clavier.

(3)

La fonction printf

Elle permet d’afficher des informations à l’écran.

Sa syntaxe est la suivante:

printf(chaine de caractères entre guillemet (" ") contenant éventuellement des codes de format , puis suivis

éventuellement d’une virgule suivie d’une liste d’expressions séparées par des virgules d’un types en accord avec le code format correspondant)

La chaine de caractères contient à la fois :

Des caractères à afficher tels quels,

Des « codes de format » repérés par %. Un « code de conversion » (tel que c, d ou f) y précise le type d’information à afficher. Un code de format peut contenir des informations complémentaires agissant sur le « cadrage », le « gabarit » ou la « précision ».

(4)

La fonction printf : les principaux codes de conversion

- c char : caractère affiché « en clair » (peut convenir aussi à short ou int compte tenu des conversions systématiques)

- d int (peut convenir aussi à short ou char compte tenu des conversions systématiques)

- u unsigned int (peut convenir aussi à unsigned short ou unsigned char compte tenu des conversions systématiques)

- ld long

- lu unisgned long

- f double ou float : écrit en notation « décimale » avec six chiffres après le point.

- e double : : écrit en notation « exponentielle (mantisse entre 1 inclus et 10 exclus) » avec six chiffres après le point décimal, sous la forme x.xxxxxxe+yyy ou x.xxxxxxe-yyy pour les nombres positifs et –

x.xxxxxxe+yyy ou –x.xxxxxxe-yyy

- s chaîne de caractère dont fournit l’adresse

(5)

La fonction printf : action sur le gabarit d’affichage

Par défaut, les entiers sont affichés avec le nombre de caractères nécessaires (sans espaces avant ou après). Les flottants sont affichés avec six chiffres après le point (aussi bien pour le code e que f).

Un nombre placé après % dans le code de format précise un gabarit d’affichage, c’est-à-dire un nombre minimal de caractères à utiliser. Si le nombre peut s’écrire avec moins de caractères, printf le fera

précéder d’un nombre suffisant d’espaces; en revanche, si le nombre ne peut s’afficher convenablement dans le gabarit imparti, printf utilisera le nombre de caractères nécessaires.

Exemples :

printf("%4d",n) => si n=15 ^^15 si n= 2 ^^^2 si n=1988 1988 si n=19787 19787

(6)

La fonction printf : action sur la précision

On peut spécifier un nombre de chiffres (éventuellement inférieur à 6) après le point décimal (aussi bien pour la notation décimale que pour la notation exponentielle). Ce nombre doit apparaître, précédé d’un point, avant le code de format (et éventuellement après le gabarit)

printf("%10.2f",n) => si n=5.2531 ^^^^^^5.25 si n= 5.2531E3 ^^^5253.10 si n= 5.2531E7 52531000.00

Le signe moins (-), placé immédiatement après le symbole % (comme dans %-5d ou %-8.2f), demande de « cadrer » l’affichage à gauche au lieu de le cadrer (par défaut) à droite; les éventuels espaces

supplémentaires sont donc placés à droite et non plus à gauche de l’information affichée.

Le caractère * figurant à la place d’un gabarit ou d’une précision

signifie que la valeur effective est fournie dans la liste des arguments de printf. Exemple printf("%5.*f",n, x) => n=2, x=1.25478 ^1.25

(7)

La fonction scanf

Elle permet de lire des informations saisies au clavier.

Sa syntaxe est la suivante:

scanf(chaine de caractères entre guillemet (" ") suivie d’une virgule suivie d’une liste d’adresses séparées par des virgules d’un type en accord avec le code format correspondant)

La chaine de caractères contient à la fois :

Eventuellement des séparateurs

Des « codes de format » repérés par %. Un « code de conversion » (tel que c, d ou f) y précise le type d’information à saisir. Un code de format peut contenir des informations complémentaires agissant sur le « cadrage », le « gabarit » ou la

« précision ».

(8)

La fonction scanf : les principaux codes de conversion

- c char

- d int

- u unsigned int

- hd short int

- hu unsigned short

- ld long int

- lu unisigned long

- f ou e float écrit indifféremment dans l’une des deux notations : décimale (éventuellement sans point, c’est-à-dire comme un entier) ou exponentielle (avec la lettre e ou E)

- lf ou le double écrit indifféremment dans l’une des deux notations : décimale (éventuellement sans point, c’est-à-dire comme un entier) ou exponentielle (avec la lettre e ou E)

- s chaîne de caractère dont fournit l’adresse

(9)

La fonction scanf : action sur le gabarit

On peut préciser un gabarit dans un code de format scanf. Le

traitement d’un code de format s’interrompt soit à la rencontre d’un séparateur (espace, fin de ligne, tabulations (horizontale et verticale), changement de page), soit lorsque le nombre de caractères indiqués a été atteint (les séparateurs éventuellement sautés auparavant ne sont pas comptabilisés)

Exemples :

Sans gabarit

int a; scanf("%d" , &a); valeur 15 => a=15 int a, char c; scanf("%d%c" , &a, &c);

valeurs saisie 1512a => a=1512 et c=‘a’

Avec gabarit

scanf("%3d%3d",&n,&p)

valeur saisie : 12 25 => n=12, p=25

valeur saisie : 12474 => n=124, p=74

(10)

La fonction scanf : espace dans le format

Un espace entre deux codes de format demande à scanf d’ignorer la prise en compte des séparateurs dans l’analyse de la chaine saisie.

C’est déjà le cas lorsque qu’elle analyse les types numériques.

Exemples :

scanf("%3d %c",&n,&c)

valeur saisie : 12 a => n=12, c=a valeur saisie : 12

a

b => n=12, c=a

Références

Documents relatifs

strlen est une fonction qui calcule la longueur d’une chaîne de caractères(sans compter le caractère (‘\0’)).. La fonction contient la chaîne comme paramètre et retourne

[r]

1/ dresser le tableau de variations de f. a) montrer que g réalise une bijection de [-1,1] sur un intervalle J que l'on précisera... 3/a/ montrer que  admet un point d’inflexion

2/ a) montrer que le triangle ADK est rectangle et isocèle. b) déterminer la nature et les éléments caractéristiques de f. Soit I et J les milieux respectifs de [OA] et [OB]. c)

Un jour, Dieu a entendu et a vu que j'avais besoin d'aide Il m'a envoyé la meilleure enseignante existante!. Et puisqu'elle était sans doute extraordinaire, elle a pu relever

Pour traiter des données en C/C++, on utilise des instructions pour exprimer les étapes à réaliser dans un programme pour obtenir un résultat.. Il existe différents

J’ai aussi un petit service à vous demander : si vous êtes en contact grâce aux réseaux sociaux avec d’autres élèves, pourriez-vous leur parler de ce quiz.. Je tiens également

Je tiens également à rappeler que toutes les notions vues depuis le 15 mars ne seront pas évaluées certificativement et qu’elles ne rentreront donc pas en compte dans la réussite