Onwebcreations.Net  
Onwebcreations.Net
 
Programmation
Services Gratuits
Codes Sources
Divertissements
   

  Programmation C Haut de page

 

Entrée : scanf :

La fonction
scanf(); invite l'utilisateur a entrer des données. Cela est matérialisé par un curseur (_) clignotant. La fonction scanf(); fonctionne de manière analogue à printf();

char Nom[50];
printf("Entrez votre nom : \t");
scanf("%s",&Nom);




affiche
Entrez votre nom et laisse clignoter un curseur, montrant que le programme attend que l'utilisateur entre son nom.
La chaîne de caractère tapée par l'utilisateur suivi d'une confirmation par la touche <ENTREE> enclenche un processus d'affectation : le & qui précède le nom de la variable (dans le cas présent, il s'agit de la variable Nom) indique l'adresse mémoire de la variable. En effet, chaque variable possède une adresse mémoire, codifiant en binaire le contenu de celle-ci. L'opérateur d'adressage (&) indique qu'il s'agit de l'adresse mémoire de la variable Nom et non de la variable Nom.
Cependant, selon le compilateur, l'argument demandé peut varier. Miracle C attend simplement le nom de la variable et non l'adresse mémoire.
Le premier argument indique le format du type de données saisi par l'utilisateur. Dans le cas présent, il s'agit d'une chaîne de caractères : %s.
Nous allons dans un exemple concret, demander à l'utilisateur de saisir son nom, puis l'afficher :

#include <stdio.h>    // pour printf();
#include <system.h> // pour getche();

main()
{


char Nom[255];

printf("Bonjour,\n\n");
printf("Entrez votre nom : \t");

scanf("%s",Nom);

printf("\nMerci %s, a bientot !",Nom);

getche();
}


ceci affiche à l'écran :


Voici toutes les spécifications de format pour
scanf(); :

FORMAT TYPE DE DONNEE
%d entier décimal de type int
%hd entier décimal de type short
%Id entier décimal de type long
%i entier de type int
%u entier décimal de type int non signé
%hu entier décimal de type short non signé
%lu entier décimal de type long non signé
%o entier octal de type int
%ho entier octal de type short
%lo entier octal de type long
%x entier hexadécimal de type int
%x entier hexadécimal de type int
%hx entier hexadécimal de type short
%lx entier hexadécimal de type long
%c Caractères ASCII
%f nombre à virgule flottante
%lf nombre à virgule flottante de type double
%e et %E nombre à virgule flottante de type float
%le et %LE nombre à virgule flottante de type double (exponentiel)
%g et %G nombre à virgule flottante de type float
%Lg et %LG nombre à virgule flottante de type long double (exponentiel ou décimal)
%s chaîne de caractères
%p pointeur


Il existe une alternative à l'instruction scanf : la fonction getche(), tout comme il existe aussi une alternative à l'instruction printf : putchar().
Effectivement, avec scanf, l'utilisateur doit valider par <ENTREE>, alors que la fonction getche(); affecte un seul caractère sans avoir à valider par <ENTREE>.
putchar(); permet d'afficher un caractère unique. Illustrons ceci par un exemple :

#include <stdio.h>
#include <system.h> // pour getche();
main()
{

char c;

printf("Entrez une lettre :\t");
c = getche();
printf("\nLe caractere que vous avez entre est : ");
putchar(c);

getche();
}

La fonction getche(); ne nécessite pas, de la part de l'utilisateur, une validation par la touche <ENTREE> et ne permet de recevoir qu'un unique caractère.
Voici le résultat de l'exemple :



[ << Page précédente | Page suivante >> ]


 
    Haut de page
© Onwebcreations.Net : Programmation & Services Internet
Accessible aussi par : Services-Gratuits-Webmasters.com
Contacter le suppport technique
Internaute(s) actuellement sur le site.