code | commentaire |
/* prog5a.c */ |
La fonction de saisie au clavier scanf utilise le même
codage de format de données que la fonction d'affichage printf .scanf a besoin de l'adresse de la variable pour y placer la
valeur saisie, aussi la variable passée en paramètre est préfixée d'un
& , sauf pour les chaines (qui sont déjà des adresses).N.B. On remarquera que la chaine de caractère s
a été définie comme un tableau de onze caractères dont toutes les cases sont
initialisées à 0 (càd '\0').
Remarque. '\"' est le codage du caractère guillemet
en C.
|
exécution | commentaire |
1e exécution :→ ./executable5a un entier? -99 un reel? 12.3 une chaine? bonjour valeurs saisies : entier n=-99 reel x=12.300000 chaine s="bonjour" → 2e exécution : → ./executable5a un entier? -99.326BonjourChezVous un réel? une
chaine? valeurs saisies : entier n=-99 reel x=0.326000 chaine s="BonjourChezVous" →
|
Dans la 1e exécution, on saisit successivement un entier, un
réel, puis une chaine de caractères, chacun suivi d'un retour à la ligne. Dans la 2e exécution, on saisit -99.326BonjourChezVous et la fonction scanf
effectue une reconnaissance de motif qui valide la saisie d'un entier dès
qu'elle rencontre un caractère ne pouvant continuer l'entier (ici '.'), et la
saisie d'un réel de la même manière (ici 'B').N.B. La chaine s a une taille prédéfinie de
onze caractère mais scanf lui a octroyé le maximum de caractères
possible (ici jusque avant '\n').
|
code | commentaire |
/* prog5b.c */
|
Comme printf , scanf peut prendre plusieurs
variables en paramètres.
|
exécution | commentaire |
1e exécution→ ./executable5b entier réel chaine? -99 12.3 bonjour valeurs saisies : entier n=-99 reel x=12.300000 chaine s="bonjour" → 2e exécution → ./executable5b entier réel chaine?
99-12.3Bonjour Chez Vous Autres
valeurs saisies : entier n=99 reel x=-12.300000 chaine s="Bonjour" →
|
Le caractère espace sert de séparateur de saisie au même titre que le
retour à la ligne, y compris pour les chaines de caractères. N.B. une partie du texte saisi dans la 2e exécution ( Chez Vous ), n'est pas utilisé par le
programme. Qu'est-il devenu ?...
|