Bonjour,
Je viens demander de l'aide car je ne trouve pas de solution seul à mon "problème". J'ai écrit un programme qui fonctionne du coup je peaufine les détails. Mon programme vise à effectuer un certain nombre d'opérations de flou sur une image. Quand je lance le programme sur cygwin, je demande en 3ème argument le nombre d'itérations à effectuer (cas que je ne peux changer, le programme est demandé ainsi).
Du coup voici mes variables déclarés et ce que j'ai fait pour le moment :
C'est à la fin qu'il y a un problème. J'ai bien réussi à bloquer le programme si le nombre est négatif, s'il commence par une lettre (d, d85 par exemple) mais je ne sais pas faire :
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 // Définition des différentes variables + images image im_ori, im_res; int x,y,h,l,a,i; ... // Vérification du nombre d'itérations à effectuer const char *s = (argv[3]); test_entier(s); sscanf(argv[3], "%d", &a); if (a < 0) { printf("Le nombre d'itérations saisi est négatif !\n"); usage(argv[0]); } else if (a == 0) { printf("Aucune opération de flou effectuée.\n"); usage(argv[0]); } if (a == (int)(a)) { } else { usage(argv[0]); }" La fonction test_entier : if(sscanf(s,"%d",&x) == 1){ } else{ printf("%s n'est pas un chiffre !\n",s); exit(1); }
- stopper le programme si on tape 10.5
- stopper le programme si on tape 58ef
Des idées ?
Merci d'avance ! (je suis débutant en C)
Partager