Bonjour,
Mon code source ci-dessous (extrêmement simple) :
Lorsque je compile ce programme et que je dépasse la taille max de caractère (int maxLenght, voir le lien que je vous ai envoyé),
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 /* Le But du programme ci dessous est de demandé le nom et la taille de la personne. On utilisera la fonction fgets() pour récupérer ses informations. Cette méthode est toujours à privilégier car elle est sécurisé comparé à un scanf() Regarder sur internet le prototype de la fonction fgets() Pourquoi quand on dépasse le nombre max de caractere il n'y a pas d'erreur ? */ // BIBLIOTHEQUES : //=================================================== #include <stdio.h> #include <stdlib.h> #include <string.h> //=================================================== // FONCTION PRINCIPALE MAIN (POINT D'ENTREE DU PROGRAMME) : //=================================================== int main(void) { // DECLARATION DES VARIABLES : //=================================================== char prenom[10]; printf("Comment t'appelles tu ?\n"); // 9 caracteres et pas 10 pour reserver le caractere fin de chaine = '\0' if ((fgets(prenom, 9, stdin)) != NULL) printf("Tu t'appelles : %s", prenom); else printf("Erreur de saisie\n"); // ATTENTION fgets NE LIE QUE DES CARACTERES PAS DES NOMBRE ! // Ainsi le symbole 1 n'est pas vu comme le chiffre 1 mais comme le caractère 1 // Utiliser les fonctions de conversion string to double ou string to int ou encore string to long pour résoudre le problème char prix[10]; printf("Quel est ton prix ?\n"); if (fgets(prix, 9, stdin) != NULL) printf("Ton prix est : %g\n", strtod(prix, NULL)); else printf("Erreur de saisie\n"); return 0; } //===================================================
il n'y a pas d'erreur qui se déclenche et mon else ne sert à rien.
Je ne comprends pas pourquoi.
Avez vous une explication svp ?
Cordialement Zephyre
Partager