Bonjour,
je cherche une alternative a scanf afin de récupérer une information entrer par l'utilisateur (un float), ou, une lettre ("q" pour quitter le programme), ce que scanf ne me permet pas.
Merci
Bonjour,
je cherche une alternative a scanf afin de récupérer une information entrer par l'utilisateur (un float), ou, une lettre ("q" pour quitter le programme), ce que scanf ne me permet pas.
Merci
strtod() et getchar() devraient faire l'affaire.
Cordialement.
"The quieter you become, the more you are able to hear"
"Plus vous êtes silencieux, plus vous êtes capable d'entendre"
merci, voici le code que j'ai réalisé avec vos indications et l'aide d'un tutoriel.
Si vous voyez quelque chose qui ne va pas, ou si vous avez des optimisations à proposer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 #include <stdio.h > #include <ansi_c.h> void clean(const char *buffer, FILE *fp); int main() { char chaine[20] = ""; float erf=0; float x=0; char* fin = NULL; int quit=0; do { printf("Entrez une valeur pour x, ou 'q' pour quitter:\n"); fgets(chaine, sizeof(chaine), stdin); clean(chaine, stdin); if ((chaine[0]==113) ||(chaine[0]==81) ) exit(quit) ; x=strtod(chaine, &fin); printf("Chaine: %s, nombre: %lf\n", chaine, x); } while (quit==0) ; return 0; } //___________________________________________________________________ void clean(const char *buffer, FILE *fp) { char *p = strchr(buffer,'\n'); if (p != NULL) *p = 0; else { int c; while ((c = fgetc(fp)) != '\n' && c != EOF); } }
Salut,
Sinon tu peu tester la valeur renvoyée par la fonction scanf(...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 float test = 0.0 ; char touche = 0 ; printf("Entrez un float, ou 'q' pour sortir: ") ; if(scanf("%f", &test)) { printf("Vous avez entré %.2f\n", test) ; } else if(scanf("%c", &touche)) { if(touche=='q') printf("Vous avez quitté l'application.\n") ; else printf("Vous avez frappé : %c", touche) ; }
- Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
- Travailler dur n'a jamais tué personne, mais pourquoi prendre le risque (Edgar Bergen)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager