CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] réaction innatendue .

vexover
vexover
Niveau 9
26 juin 2007 à 19:11:56

Bonjour, j´ai décidé de commecer un petit jeu de plate-forme mettant en scène l´éternel compagnon du petit plombier vétu de rouge : Luigi.
Mais d´abord je me suis atelé à une lourde tâche, c´est à dire charger la map à partir d´un fichier texte, j´ai donc pour le moment seulement écris le code correspondant à la lexture de la premiere ligne du fameux fichier texte, j´ai seulement un tout petit problème, le code compile, mais aucune fenêtre n´aparaît et le programme reste en service tant que l´on ne va pas fouiner dans les processus pour supprimer celui correspondant à mon programme .
Voici le code : http://rafb.net/p/5XqC4399.html

On aurait tendance à penser à une boucle infini mais je ne vois pas d´où celle-ci peut provenir.

PS : Je sais que le code est assez brouillon et pas vraiment facile à lire et j´en sui dsl ...

dnob700
dnob700
Niveau 10
26 juin 2007 à 20:33:55

fgetc renvoie un int et non pas un char. Ce n´est pas très grave normallement car il lit un "unsigned char" etle colle dans un int. Sauf le EOF qui doit valoir "-1" je crois. Donc ton char (qui par défaut est unsigned contrairement aux autres types de données, sij´ai bonne mémoire,même s´il y a une différence pour le compilo entre char et les signed/unsigned char), bref, tout ça pour dire, que EOF == -1 et caractèreactuel est positif donc le teste de ta boucle while rate toujours (car tout est casté en int).

Donc enregistre le résultat du fgetc dans un int, fait le test de la boucle while avec cet int et pour le reste recopie cet int dans un char et il sera tronqué correctement.

vexover
vexover
Niveau 9
26 juin 2007 à 20:50:06

"pour le reste recopie cet int dans un char et il sera tronqué correctement."

jsute par curiosité, cela sert seulement à l´optimsation non ? ce n´est pas obligatoire ?

Sinon j´ai essayé en faisant les modification que tu m´a donné mais le résultat est le même, Le problème ne semble pas venir de EOF étant donné que j´ai essayé avec le caractere ´/´, ainsi j´ai mis / à la fin du fichier texte et j´ai transformé la boucle en :
while (caractereActuel != ´N´);
Mais le résultat est le même .

godrik
godrik
Niveau 30
26 juin 2007 à 20:59:35

"Sinon j´ai essayé en faisant les modification que tu m´a donné mais le résultat est le même, Le problème ne semble pas venir de EOF étant donné que j´ai essayé avec le caractere ´/´, ainsi j´ai mis / à la fin du fichier texte et j´ai transformé la boucle en :
while (caractereActuel != ´N´); "

Heu... while (caractereActuel != ´/´); plutot non ?

vexover
vexover
Niveau 9
26 juin 2007 à 21:12:34

Lol oui pardon, j´ai bien mis
while (caractereActuel != ´/´) dans le code x), j´ai juste fait une erreur en recopiant sur le forum .

dnob700
dnob700
Niveau 10
26 juin 2007 à 21:43:27

alors vérifie bien tout tes teste == qu´il n´y en ai pas un qui soit = par hasard (où tu réaffecte la valeur de caractèreactuel).

Sinon, il doit y avoir une fonction genre feof(fichier) qui te dit si tu as atteint le fichier, tu peut t´en servir au lieu de tester caractere==EOF.

vexover
vexover
Niveau 9
26 juin 2007 à 23:25:32

pour les == j´ai déja vérifié plusieurs fois, Et sinon, la feof renvoie 1 si le fichier à atteint la fin c´est ça ?

vexover
vexover
Niveau 9
26 juin 2007 à 23:33:00

OMG, j´ai trouvé, c´était honteusement con, j´ai mis un ; après le while ... J´avais pas fait attention car au départ c´était un do ... while, et en la changeant en while j´ai oublié d´enlever le point virugle.
Dsl de vous avoir dérangé et merci de votre aide ^^.

dnob700
dnob700
Niveau 10
27 juin 2007 à 10:25:15

pas mal. C´est vrai que c´est le genre de truc qui passe inaperçu.

Vive les bon compilo qui aurait donné un warning là (quoi que, je viens de vérifier, icc n´en donne pas alors que j´étais convaincu qu´il le ferait).

godrik
godrik
Niveau 30
27 juin 2007 à 13:52:09

icc est un bon compilateur pour la peformance mais assez peu pouyr l´information.
Rappelons quelques outils pratique:
"gcc -W -Werror -pedantic" qui amene une foule de warning
valgrind pour les problemes a l´execution
lint et tous ses dérivé (a peu pres un par langage, a quelques exceptions pres): en C, c´est splint. Ca fournit une analyse statique du code et releve des chsoes bizarres. L´outils est un peu (completement) paranoiaque, mais il y a fort a parier qu´il voit la plupart des erreurs de base.

dnob700
dnob700
Niveau 10
27 juin 2007 à 14:41:10

mais icc relève aussi des trucs intéressant comme les appel de fonctions imbriqués où l´ordre d´évaluation n´est pas connu à l´avance, ou alors il fait respecter les conseils du "effective c++", prévient des affectations dans les test, etc. Je crois qu´avec tout les warning ils donne au moins tout ceux de gcc.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment