Pourquoi ce Warning? une idée? [C] - C++ - Programmation
Marsh Posté le 21-02-2003 à 11:13:12
Tu obtiens ce message quand tu places dans une variable d'un certain type une valeur dont le type a une plus grande précision ou qui offre un intervalle de valeurs permises plus grand.
Exemple, si tu places la valeur 258 de type int dans un char, tu obtiendras la valeur 2...
Marsh Posté le 21-02-2003 à 11:13:21
getch ne retourne pas un char mais un int. Par exemple, getch peut retourner EOF qui ne peut pas se coder sur un char
Marsh Posté le 21-02-2003 à 11:14:41
BifaceMcLeOD a écrit : Tu obtiens ce message quand tu places dans une variable d'un certain type une valeur d'une plus grande précision ou dont l'intervalle de valeur est plus grand. |
c'est tout a fait ce que je me disais egalement mais la variable qui est reseptacle est de type char... et c un getch()... pourquoi je perdrais des informations? a premiere vu c'est de même type.. je comprend pas
Marsh Posté le 21-02-2003 à 11:18:30
Kristoph a écrit : getch ne retourne pas un char mais un int. Par exemple, getch peut retourner EOF qui ne peut pas se coder sur un char |
ok je comprend bien mieux alors
merci bien
Marsh Posté le 21-02-2003 à 11:18:50
albino13 a écrit : |
tu perds des infos parce que getchar() renvoie un int, que tu stockes dans un char !
c'est pourtant pas dur à comprendre ! si tu chausses du 44 et que tu achètes du 38, tu auras mal aux pieds !
Marsh Posté le 21-02-2003 à 11:18:55
Ne jamais faire d'a priori sur les prototypes de fonctions qu'on utilise : toujours se reporter à une documentation de référence de l'API.
Kristoph a donné l'information manquante. getch() renvoie bien un int, et ta supposition était fausse. Mais rassure-toi, c'est un des pièges classiques de l'API du C ANSI, et tu n'es ni le premier, ni (hélas) le dernier à tomber dans le panneau...
edit> A mon tour, d'être trop lent.
Marsh Posté le 21-02-2003 à 12:28:29
Citation : si tu chausses du 44 et que tu achètes du 38, tu auras mal aux pieds ! |
Heu ... tu veux plutôt dire si tu chausses du 32 et que t'achètes du 8 ...
Marsh Posté le 21-02-2003 à 12:31:59
HelloWorld a écrit :
|
Marsh Posté le 21-02-2003 à 11:10:59
Salut tt le monde ,
lors de la compilation de mon programme j'ai ce warning
"Conversion may lose significant digits"
en soit le message je le comprend mais ce que je ne comprends pas c'est pourquoi il me dit ca?
ce qui ce passe c'est a chaque fois que j'effectue cette operation
j'ai ce warning... mais pourquoi donc?
merci a tous:hello:
petit oubli.. je suis sous win XP borland C++ builder 6.0 et je fais du 'C'
Message édité par albino13 le 21-02-2003 à 11:13:15