Langage C débutant : la console est vide

Bonjour à tous,
j’ai programmé un pendu en C, mais je rencontre un problème tout marchait parfaitement mais aujourd’hui je ne sais pas pourquoi lorsque je lance le programme la console reste noire, totalement vide
main :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "header.h"

int nombreAleatoire ();

int main() //boucle du jeu + appel des différentes fonctions
{
    char mot[25];
    char entree[25];

    int nombre = 0, rejouer=1;

    while (rejouer==1)
    {
    motAleatoire(mot, entree);  //correspondance avec un mot aléatoire + assignation à mot et entree

    int coups=10;

    char lettre;
    printf("     BIENVENUE DANS LE JEU DU PENDU\n\n     "); // TITRE
    printf ("Le mot est %s, il vous reste %d coups\n\n", entree, coups); //affichage de l'entree

        while (strcmp(mot, entree)!=0 && coups>=1 )  // tant que l'entree et le mot sont différents
        {
            scanf("%c", &lettre);
            if (existenceLettre(mot, toupper(lettre)))  //si la lettre est dans le mot
            {
                afficheLettres (mot, entree, toupper(lettre)); // alors on l'insere dans l'entree
            }
            else if (toupper(lettre)!='\n') //si la lettre n'est pas dans le mot et n'est pas un retour à la ligne
            {
                coups--; //on perd une vie
                if(coups==0)  //si on a plus de vie
                {
                    printf("DESOLE MAIS VOUS ETES PENDU\n le mot etait : %s", mot); // l'utilisateur est pensu
                    printf ("\nVoulez-vous rejouer ?\n0.non\n1.oui\n");
                    scanf ("%d", &rejouer);
                }
                else // sinon il reste X coups
                {
                    printf ("la lettre %c n'est pas dans le mot mystere, \nil vous reste %d coups avant d'etre pendu\n", lettre, coups);

                }
            }
        }
    if (strcmp(mot, entree)==0) // si l'entree et le mot sont identiques
        {
            coups=10-coups; //calcul des erreurs
            printf("VOUS AVEZ GAGNE %s ETAIT LE MOT MYSTERE EN %d ERREURS\n", mot, coups);
            printf ("\nVoulez-vous rejouer ?\n0.non\n1.oui\n");
            scanf ("%d", &rejouer);
        }
    }
    system("PAUSE");
    return 0;
}

header.h :


#ifndef header.h
#define header.h
void motAleatoire (char *mot, char *entree);
void afficheLettres (char *mot, char *entree, char lettre);
int existenceLettre(char *mot, char lettre);
int nombreMots ();
void selectionnerMot (char *mot, char *entree, int nombreMots);
#endif

mot aléatoire.c :


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define MIN 1
#include "header.h"


void motAleatoire (char *mot, char *entree)
{
    int numeroDuMot = 0;
    nombreMots();
    srand(time(NULL));
    numeroDuMot = (rand() % (nombreMots() - MIN + 1)) + MIN; //génération d'un nombre aléatoire
    selectionnerMot(mot, entree, numeroDuMot);

}
int nombreMots ()
{
    int nombreMots = 0, caractereLu = 0;
    FILE* dico;
    dico = fopen("dico.txt", "r");
    rewind(dico);
    while (caractereLu != EOF)
    {
        caractereLu = fgetc(dico);
        if (caractereLu == '\n')
        nombreMots++;
    }
    fclose(dico);
    nombreMots--;
    return nombreMots;
}
void selectionnerMot (char *mot, char *entree, int numeroDuMot)
{
    int caractereLu=0,i=0;
    FILE* dico;
    dico = fopen("dico.txt", "r");
    rewind(dico);

    while (numeroDuMot>0)
    {
        caractereLu = fgetc(dico);
        if (caractereLu == '\n')
        numeroDuMot--;
    }
    fgets(mot, 30, dico);
    mot[strlen(mot) - 1] = '\0';
    for (i=1;i<strlen(mot);i++)
    {
        entree[i] = '*';
    }
    entree[0]=mot[0];
    fclose(dico);
}

existence.c (de la lettre dans le mot) :



int existenceLettre(char *mot, char lettre)
{
    int i=0;
    for (i=0;i<strlen(mot);i++)
    {
        if (mot[i] == lettre)
        {return 1;}
    }
    for (i=0;i<strlen(mot);i++)
    {
        if (mot[i] != lettre)
        {return 0;}
    }
}

affiche lettres :



void afficheLettres (char *mot, char *entree, char lettre)
{
    int i=0,nombreDeLettres=0;
    for (i=0;i<strlen(mot);i++)
    {
        if(mot[i]==lettre)
        {
            entree[i]=lettre;
        }
    }

    printf ("\n%s\n\n", entree);
}

le dictionnaire : fichier dico.txt :


MAISON
ELEMENT
PATRIMOINE
ALPHABET
SUSPENDRE
LANGAGE
MARTEAU
CEINTURE
EXAMEN
SUBDUCTION


Est-ce que quelqu’un a déjà rencontré ce problème ? Comment y remédier ? Merci
Message edité le 30/03/2010 à 23:18

#ifndef header.h

C’est faux. C’est #ifndef HEADER_H Les macro ne tolèrent pas de point (.).

Comment appelles tu ton programme ?

merci je vais corriger, c’est pendu.exe, c’est ce que tu me demandais?

non, au niveau de la ligne de commande :slight_smile:

Est-ce que tu fais pas un truc genre pendu.exe& ou pendu.exe > … etc

Non je ne fais rien de tout ça, le problème venait du dico qui s’était vidé, à quoi sert ce dont tu me parle je n’en ai jamais entendu parlé ?