Problème de syntaxe en C

Salut, j’avais regardé y’a un petit moment des cours en C sur le site du zero et j’ai essayé de m’y remettre en programmant un petit jeu de pendu le problème c’est qu’à un moment j’ai ça :

void jeu()
{
long i, taille, coups, plusCouUnik=0;
long motDec;
char carATester = 0 ;
char mot ; //pointeur pour récupérer l’adresse du malloc de dico
printf("\t\t-
-
-LE PENDU---\n");

et le problème c’est qui me dis qu’il y a une erreur avant le ‘{’ et une autre avant le printf :heink:
de plus y me met : "parameter `carATester’ is initialized " et j’ai vu sur le web que ça pouvais arriver si on mettait pas les accolades :arf:

je vois vraiment pas d’où ça peut venir donc si quelqu’un a une idée d’autant que mon code marchait avant et je sais pas ce que j’ai touché pour qu’y marche plus :pt1cable:

merci

Affiche tout le code…

Sinon, les commentaires sur une seule ligne ne sont pas C89 mais C99. Vérifie si ce n’est pas ça ton problème (même si de mémoire, il te le dit de manière spécifique).

Perso, j’écrirai ça comme ça :

void jeu(void) {
...
}

Il faudrait tous ton code pour débugger ce serai plus simple
deux question :
On peut voir ton main ?
Et as tu pensais à : “#include <stdio.h>” pour le printf

Pour moi sinon la syntaxe est correcte sauf si ta méthode jeu est en fait ton main dans ce cas remplace “void jeu()” par “int main()” et pense à mettre un “return 0;” à la fin de ton main

voici mon main :

et j’ai essayé sans le commentaire ça change rien :o(
j’ai aussi essayé void jeu(void)
ça change rien non plus :peur:


et mon jeu.c en entier j'ai mis plein de comm pour vous aider :p

Edité le 17/02/2010 à 19:02

de plus dans la case compilateur avant ces erreurs y me met

or ma fonction bravo c’est un truc bricolé à grand coups de printf :

Edité le 17/02/2010 à 19:06

Tu compiles comment ce code ? A tout hasard, compile juste ton fichier avec la commande -E de gcc, ça devrait t’afficher tout ton code, les includes résolus (et donc, plus facile pour voir les éventuelles erreurs de syntaxe).

Sinon, quelles sont les erreurs reportées par le compilateur ?

j’ai pas gcc j’ai devC++ :paf:

sinon comme erreurs y’avait :

en espérant que t’y vois plus clair que moi :wink: (ce qui doit pas être très dur :ane: )

Heu… DevC++ est outdated. Ce n’est pas pour rien que sur la page de DevC++ (http://www.bloodshed.net/index.html) la dernière news date de février 2005. Ce n’est pas pour rien que Code::Blocks est recommandé à la place (http://www.codeblocks.org/) même s’il semble outdated lui aussi. Enfin perso, me sert de VS 2005 au boulot, et de Notepad++/jEdit à la maison (+ mingw & cygwin).

Pour le reste, vire les commentaires uni lignes et pour bravo, utilise encore et toujours le “void” : bravo(void).

:nexath les commentaires je les avais rajoutés juste pour que vous compreniez y’en avait pas à la base :ane:
sinon j’ai essayé avec [quote=""]
void jeu(void)
[/quote]
et ça marche pas non plus :wink:

bon je prend code blocks et je vous tien au courant :slight_smile:

alors voilà j’ai installé code blocks qui au passage est bien mieux (je savais que DEV-C++ était dépassé mais bon la flemme d’en prendre un autre : je savais pas que code blocks pouvait ouvrir les projet dev)
et donc je peux compiler tous mes fichiers sauf comme par hasard jeu.c ou y me met exactement les mêmes erreurs que dev-C++ :paf:

soit :

Tu pourrais packager tout ça avec un makefile parce que là, je ne vois pas.

commence par virer les else{} qui ne servent à rien.
ligne 20 et 22 de la fonction jeu tu as “[i]” dans ton code. Je pense que ça n’est pas à la bonne place.

Je pense que c’est l’italique qui ne passe pas dans la balise code :slight_smile:

exact, je ne l’avais pas vu.

mais ça reste le cœur du problème, ‘motDec=1’ correspond à mettre ‘1’ l’adresse du tableau correspondant. Est ce une erreur ? Ou est ce une mauvaise interprétation de ma part ?

Oui, mais c’est plus sémantique que syntaxique :slight_smile: là, son erreur est syntaxique.

non il y a écris [quote=""]
motDec[i]=1;
[/quote]
donc y’a pas de raison que ça marche pas :oui:
sinon je vois pas ou il y a de l’italique :heink:

if(carATester==mot) [i]//si la lettre saisie est dans le mot
{
motDec=1; [i]//le booléen correspondant vaut vrai
if(plusCouUnik==0) //au cas ou il y ai deux fois la même lettre

Lit bien avant le “//” :slight_smile:

non c’est que le i entre crochet correspond à la fonction italique de ce forum donc dans mon code il n’y en a pas :jap:
donc l’erreur n’est toujours pas cernée :sweet: