langage C, message d'erreur

langage C, message d'erreur - C - Programmation

Marsh Posté le 26-10-2010 à 15:12:26    

Bonjour,
je dois réaliser un jeu de dames en langage C et je suis bloqué lorsque je dois afficher et initialiser le damier. je suis débutant en langage C...
Il me met un message d'erreur comme : fatal erreur C1083" impossible d'ouvrir le fichier include"; "initialiser.h"; no such file or directory :??:  
 
le menu ce présente comme ca:
#include <stdio.h> // printf()
#include <stdlib.h> // EXIT_SUCCESS
#include <windows.h>
#include <math.h> /*contient la déclaration des fonctions mathématiques usuelles*/
#define N 20
 
/*Déclaration des fonctions personnalisées, à compléter*/
#include "initialiser.h"
#include "afficher.h"
 
int main()
{
    int choix,
  tab[][N]={0},
  taille=0;
 
    do{
  printf(" 1: Nouvelle partie;\n 2: Continuer la partie;\n 3: Enregistrer la partie;\n 4: Ouvrir une partie;\n 0: quitter\n" );
        scanf("%d",&choix);
        switch (choix)
  {
            case 0 :    /*Quitter le programme*/
                return EXIT_SUCCESS;
                break;
            case 1 :    /* Fonction Nouvelle partie*/
                initialiser_tab(tab, &taille);
    affiche(tab,taille);
                break;
            case 2 :    /* Continuer la partie */
                ;
                break;
            case 3 :    /*Enregister la partie*/
                ;
                break;
   case 4 :    /*Ouvrir une partie*/
                ;
                break;
            default :   /*Choix non autorisés */
                printf("valeur invalide" );
                break;
        }
    }
 
    while(choix!=0);
    return EXIT_SUCCESS;
}
 
le fichier initialiser:
 
 
 
int taille_tab (int *taille)
{
 do
 {
  printf(" Quelle grandeur de damier désirez-vous?\n" );
  scanf("%d" );
 }
 while (test_tab_taille(*taille) == 1);
 return *taille;
}
int test_tab_taille (int taille)
{
 if ((taille%2)!= 0)
 {
  printf("la grandeur de la table doit etre paire et inferieur a 20\a\n" );
  return 1;
 }
 return 0;  
}
int initialiser_tab(int tab[ ][N], int taille)
 {
   
  int i=0, j=0;
  taille=taille_tab (taille);
 
  for(i=0;i<taille;i++)
  {
   for(j=0;j<taille;j++)
   {
    if(((i+j)%2)==0)
    {
     tab[i][j]=0;
     //printf("%d",tab[j][i]);
    }
    else if (i==((taille/2)-1)||i==(taille/2))
    {
     tab[i][j]=0;
     //printf("%d",tab[j][i]);
    }
    else if (i<((taille/2)-1))
    {
     tab[i][j]=1;
    }
    else
    {
     tab[i][j]=2;
    }
   }
  }
   
  return 0;
 }
 
et le fichier afficher:  
#include <stdio.h> // printf()
#include <stdlib.h> // EXIT_SUCCESS
#include <windows.h>
#include "afficher.h"
 
 
 
void affiche(int tab[][N], int taille)
{int i=0,j=0;
for (i=0;i<taille;i++)
{
 for(j=0;j<taille;j++)
 {
  printf("%d\t",tab[i][j]);
 }
 printf("\n",tab[i]);
}
printf("\n" );
}
 

Reply

Marsh Posté le 26-10-2010 à 15:12:26   

Reply

Marsh Posté le 26-10-2010 à 16:12:28    

syfrdy a écrit :

lorsque je dois afficher et initialiser le damier.


Et dans l'ordre inverse ?
 

Reply

Marsh Posté le 26-10-2010 à 16:45:01    

ca me met la même chose!

Reply

Marsh Posté le 26-10-2010 à 18:11:59    

Vérifie que tu as le fichier initialise.h,
Vérifie que le fichier à des droits nécessaire.


Message édité par Profil supprimé le 26-10-2010 à 18:12:09
Reply

Marsh Posté le 26-10-2010 à 18:32:02    

CAD?  
le fichier initialiser je l'ai dans mes fichiers sources avec mon fichier menu et afficher!  

Reply

Marsh Posté le 26-10-2010 à 19:37:17    

syfrdy a écrit :

CAD?  
le fichier initialiser je l'ai dans mes fichiers sources avec mon fichier menu et afficher!  


 
C'est "initialiser.h" le nom de fichier inclue.
Je pense qu'il faut avoir les droits d'accès en lecture sur le fichier.

Reply

Marsh Posté le 26-10-2010 à 19:39:21    

tu as du avoir des cours dans lesquels tu as du apprendre ce que signifiaient les directives #include. Il serait peut-être moment de faire une petite relecture.


Message édité par theshockwave le 26-10-2010 à 19:39:38

---------------
last.fm
Reply

Marsh Posté le 26-10-2010 à 20:44:35    

nn je n'es pas eu de cours sur les droits d'accès de fichier!
et donc tu fais comment pour avoir les droits d'accès pour la lecture du fichier?

Reply

Marsh Posté le 26-10-2010 à 20:53:06    

syfrdy a écrit :

nn je n'es pas eu de cours sur les droits d'accès de fichier!
et donc tu fais comment pour avoir les droits d'accès pour la lecture du fichier?


 
T'es sur quel système d'exploitation ?

Reply

Marsh Posté le 26-10-2010 à 21:30:23    

windows xp pro! pk?

Reply

Marsh Posté le 26-10-2010 à 21:30:23   

Reply

Marsh Posté le 26-10-2010 à 22:09:47    

Tu dois avoir un inititilialiser.c et initialiser.h
Pareil pour afficher.c et afficher.h
 
Mets tous les fichiers dans le même répertoire pour pas avoir de problème au début.


---------------
sheep++
Reply

Marsh Posté le 26-10-2010 à 22:31:35    

c'est ca le souci c'est que j'ai tout dans le mm!  
quoique j'ai peu être pas le fichier .h, je l'ai juste appelé!

Reply

Marsh Posté le 26-10-2010 à 22:42:48    

syfrdy a écrit :

Bonjour,
Il me met un message d'erreur comme : fatal erreur C1083" impossible d'ouvrir le fichier include"; "initialiser.h"; no such file or directory :??:  


Citation :


quoique j'ai peu être pas le fichier .h, je l'ai juste appelé!


Ca va être long  :whistle:

Reply

Marsh Posté le 26-10-2010 à 22:52:39    

cad?

Reply

Marsh Posté le 26-10-2010 à 23:04:22    

Tu as surement du sauter un cours, les headers/prototypes ça te dis quelque chose?
 
en tout cas pour revenir au problème:
fatal erreur C1083" impossible d'ouvrir le fichier include"; "initialiser.h"
 
signifie que ton fichier initialiser.h n'existe pas, faut le créer et y mettre des machins dedans.


---------------
sheep++
Reply

Marsh Posté le 27-10-2010 à 12:20:45    

mon fichier initialiser.c existe il faut que je fasse un fichier initialiser.h c'est ca?

Reply

Marsh Posté le 27-10-2010 à 12:42:11    

Oui.  (include indique qu'il faut lire le fichier..., si tu ne sais pas ça ou tu étais fort distrait ou tes sources sont bien mauvaises)


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 27-10-2010 à 13:20:45    

syfrdy a écrit :


quoique j'ai peu être pas le fichier .h, je l'ai juste appelé!


 [:roxelay]


---------------
Des Bisous et des nounours ! | Internet 2025 | Dungeon-Generator
Reply

Marsh Posté le 27-10-2010 à 14:02:47    

une foi que j'ai fait mon fichier .h il me met:
fatal error c1014 fichier include trop nombreux: profondeur =1024
 
ps: si je demande de l'aide c'est que je n'es pas eu de cour sur ce ".h" dsl...

Reply

Marsh Posté le 27-10-2010 à 14:06:33    

Après le cours sur ".Net", le cours sur le ".H" :lol:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-10-2010 à 14:19:53    

syfrdy a écrit :

une foi que j'ai fait mon fichier .h il me met:
fatal error c1014 fichier include trop nombreux: profondeur =1024
 
ps: si je demande de l'aide c'est que je n'es pas eu de cour sur ce ".h" dsl...


 
prends un livre sur le sujet, apprends la base. Là, tu n'as juste aucunes connaissances sur le sujet, on ne peut pas les apprendre à ta place.


---------------
last.fm
Reply

Marsh Posté le 27-10-2010 à 14:24:15    

Je vais tenter de faire simple.
 
Un programme C est composé de beaucoup de fonctions, dont une un peu particulière, le main, qui est appelée quand on exécute le programme.
 
L'ordre des fonctions a une importance : si tu mets une fonction avant le main, tu pourras t'en servir quand tu seras dans le main (elle aura été lue avant, elle sera connue). Si tu mets une fonction après le main, ça ne marchera pas.
 
Exemple qui ne marche pas car la fonction est définie après :

Code :
  1. int main(int argc, char *argv[]) { 
  2.     double a = aireRectangle(5.3, 10.2);
  3.     return 0;
  4. }
  5. double aireRectangle(double largeur, double hauteur) {
  6.     return largeur * hauteur;
  7. }


 
Exemple qui marche car la fonction est définie avant :

Code :
  1. double aireRectangle(double largeur, double hauteur) {
  2.     return largeur * hauteur;
  3. }
  4. int main(int argc, char *argv[]) { 
  5.     double a = aireRectangle(5.3, 10.2); // ici aireRectangle est connue
  6.     return 0;
  7. }


 
Mais on peut faire autrement : on peut annoncer les fonctions à l'ordinateur en mettant leur prototypes, s'en servir dans le main, et mettre réellement la fonction plus tard.
Exemple qui marche car le prototype est défini avant (et la fonction peu importe où) :

Code :
  1. double aireRectangle(double largeur, double hauteur); // c'est un prototype
  2. int main(int argc, char *argv[]) { 
  3.     double a = aireRectangle(5.3, 10.2); // ici aireRectangle est connue
  4.     return 0;
  5. }
  6. double aireRectangle(double largeur, double hauteur) {
  7.     return largeur * hauteur;
  8. }


 
 
Quand on gère un projet en C, on utilise plusieurs fichiers sources (au lieu de tout mettre dans un gigantesque fichier .c unique).
 

  • on liste des prototypes dans "toto.h"
  • on débute "toto.c" par #include "toto.h" puis on code réellement les fonctions dont les prototypes apparaissent dans toto.h
  • dans le fichier contenant le main, si on a besoin d'une fonction, on ajoute #include "toto.h" pour que le prototype apparaisse, et on s'en sert.


Exemple :
maGeometrie.h (les prototypes) :

Code :
  1. double aireRectangle(double largeur, double hauteur);


 
maGeometrie.c (le code des fonctions) :

Code :
  1. #include "maGeometrie.h"
  2. double aireRectangle(double largeur, double hauteur) {
  3.     return largeur * hauteur;
  4. }


 
main.c (le main où on veut faire un calcul d'aire) :

Code :
  1. #include "maGeometrie.h"
  2. int main(int argc, char* argv[]) {
  3.     double a = aireRectangle(5.3, 10.2);
  4.     return 0;
  5. }


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed