SOS appel de fonction en C (bon msg)
mumberea
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Bonjour,
J'écris un petit jeu de devinette en langage C nommé "Tout ou rien". J'utilise le compilateur Codes::Blocks 8.02
Voici le lien vers le fichier en texte brut qui contient les codes sources: clique ici
Il y 3 fonctions appelées: mode1, mode2 et rejouer.
Les appels de mode1 et rejouer se font sans problème. La preuve en est que si j'enlève tous les appels de mode2(), la compilation ne sort aucun bug et le programme tourne à merveil.
Tu comprend donc que c'est l'appel de mode2() qui génère un bug dont voici le message d'erreur:
-------------- Build: Debug in Tout ou rien ---------------
Linking console executable: bin\Debug\Tout ou rien.exe
D:\Program Files\CodeBlocks\MinGW\bin\ld.exe: cannot open output file bin\Debug\Tout ou rien.exe: Permission denied
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
J'ai essayé de désactive l'antivirus pensant que pour une raison ou une autre son pare-feu bloquait le programme. Mais rien ne s'est passé.
J'avoue que je n'y comprend rien.
Je continue de chercher la solution sur la toile.
Une n-iem main me sera très utile
Bonjour,
J'écris un petit jeu de devinette en langage C nommé "Tout ou rien". J'utilise le compilateur Codes::Blocks 8.02
Voici le lien vers le fichier en texte brut qui contient les codes sources: clique ici
Il y 3 fonctions appelées: mode1, mode2 et rejouer.
Les appels de mode1 et rejouer se font sans problème. La preuve en est que si j'enlève tous les appels de mode2(), la compilation ne sort aucun bug et le programme tourne à merveil.
Tu comprend donc que c'est l'appel de mode2() qui génère un bug dont voici le message d'erreur:
-------------- Build: Debug in Tout ou rien ---------------
Linking console executable: bin\Debug\Tout ou rien.exe
D:\Program Files\CodeBlocks\MinGW\bin\ld.exe: cannot open output file bin\Debug\Tout ou rien.exe: Permission denied
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
J'ai essayé de désactive l'antivirus pensant que pour une raison ou une autre son pare-feu bloquait le programme. Mais rien ne s'est passé.
J'avoue que je n'y comprend rien.
Je continue de chercher la solution sur la toile.
Une n-iem main me sera très utile
A voir également:
- SOS appel de fonction en C (bon msg)
- Fonction si et - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appel privé - Guide
- Recuperer msg supprimé whatsapp - Guide
- Double appel - Guide
5 réponses
Salut.
Pour commencer, petite précision, code::blocks n'est pas le compilateur, mais l'IDE. Le compilateur c'est gcc.
L'erreur n'a rien à voir avec la fonction mode2, je pense que c'est un hasard.
J'ai remarqué que gcc n'aimait pas trop les espaces dans les noms de fichier. Essai ta compilation en modifiant le nom de ton programme.
Pour commencer, petite précision, code::blocks n'est pas le compilateur, mais l'IDE. Le compilateur c'est gcc.
L'erreur n'a rien à voir avec la fonction mode2, je pense que c'est un hasard.
J'ai remarqué que gcc n'aimait pas trop les espaces dans les noms de fichier. Essai ta compilation en modifiant le nom de ton programme.
j'ai telecharger ton fichier et moi c'est rejouer qu'il ne trouve pas... :/
ensuite j'ai bidouiller pour le faire moi meme ton nombre aléatoire peut être negatif ?
ensuite j'ai bidouiller pour le faire moi meme ton nombre aléatoire peut être negatif ?
si si on là^^ il est en plein milieu il ya une phrase qui le precise ici les modes un truc du genre et donc j'ai tout bien fait et ça a merder ^^ du coup j'ai copier coller le main j'ai creer une fonction debut() que j'appelle ds mon main() et je renomme tout les rejouer par debut ^^ j'ai quelques warning car j'ai pas trop lu le code que je trouve bien compliqué pour un jeu si simple (j'ai fait le même sur ma casio en beaucoup moins de ligne :p)
mercis d'avoir répondus. J'ai lus sur le net que ce genre de message d'erreur:
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings n'apparait que lors de grave erreur. D'un autre côté, vous pouvez constater que le message donne 0 erreurs. J'avoue que jusque là les choses sont floues...Mais l'essentiel est que j'ai pus résoudre le problème.
Voici ce qui n'allait pas:
mes deux fonction mode1() et mode2() je les avais définis dans un fichier.c appelé modes.c . Il s'est fait que j'avais oublier de les séparer par un ";" (oubliant que chaque fonction est une grosse instruction donc l'utilisation du ";" pour les séparer s'impose). Et après tous a marché comme sur des roulettes.
Pour le nom du jeu c'est bien "Plus ou moins". Je ne sais pas ce qui m'a pris de l'appeler "Tout ou rien".
Mercis à tous!
Vive le forum de commencamarche.net!
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings n'apparait que lors de grave erreur. D'un autre côté, vous pouvez constater que le message donne 0 erreurs. J'avoue que jusque là les choses sont floues...Mais l'essentiel est que j'ai pus résoudre le problème.
Voici ce qui n'allait pas:
mes deux fonction mode1() et mode2() je les avais définis dans un fichier.c appelé modes.c . Il s'est fait que j'avais oublier de les séparer par un ";" (oubliant que chaque fonction est une grosse instruction donc l'utilisation du ";" pour les séparer s'impose). Et après tous a marché comme sur des roulettes.
Pour le nom du jeu c'est bien "Plus ou moins". Je ne sais pas ce qui m'a pris de l'appeler "Tout ou rien".
Mercis à tous!
Vive le forum de commencamarche.net!
non je ne crois pas le problème soit à ce niveau. Pcq en regardant bien mes codes tu verras que nulle par le programme n'aura à lire l'instruction return x si je la mettait en fin de main.c pcq j'ai prévus des sorties dans chacunes des fonctions (selon la volonté du joueur). C'est d'ailleurs pourquoi maintenant que j'ai pus résourdre mon problème les choses sont revenues normalement. C'est à dire qu'après exécution (réussite) de mon programme, le msg suivant apparait dans le Build log:
Process terminated with status 0 (1 minutes, 3 seconds)
Voici mon fichier projet (sous code block 8.02) : MonProjet
Process terminated with status 0 (1 minutes, 3 seconds)
Voici mon fichier projet (sous code block 8.02) : MonProjet
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si tu prend le temps de lire mon projet, dont le lien se trouve plu haut, (précisement le main.c), tu verras que ajouter une instruction return 0 à la fin serait une instruction de trop. Ou bien alors je ne comprend pas bien ce que tu veux me dire. explique moi clairement pourquoi tu tiens à ce que j'ajoute cette instruction return 0 pendant que tel que mon programme est, après la compilation (qui se déroule à merveille), il n'y a aucun msg d'erreur: c'est à dire status 0 (c'est à dire "tout va bien")
Compile le et dit moi quoi!
Compile le et dit moi quoi!
Ton code je l'ai regardé ce matin, et il me semblait qu'avec l'appel à la fonction rejouer(), il ne se terminait jamais, c'est à dire que pour l'arrêter tu étais obligé de faire une manipulation genre fermer la croix ou autre. Alors comme tu parlais de status 1 plus haut, j'essayais de t'expliquer pourquoi tu l'aurais obtenu. Si ton programme se termine bien tant mieux, franchement c'est le principal, mais du coup je ne sais pas pourquoi tu nous parle de ce status depuis tout à l'heure si le tien est à 0...