Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3091 connectés 

  FORUM HardWare.fr
  Programmation
  C

  langage C, message d'erreur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

langage C, message d'erreur

n°2032309
syfrdy
Posté le 26-10-2010 à 15:12:26  profilanswer
 

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" );
}
 

mood
Publicité
Posté le 26-10-2010 à 15:12:26  profilanswer
 

n°2032332
Profil sup​primé
Posté le 26-10-2010 à 16:12:28  answer
 

syfrdy a écrit :

lorsque je dois afficher et initialiser le damier.


Et dans l'ordre inverse ?
 

n°2032343
syfrdy
Posté le 26-10-2010 à 16:45:01  profilanswer
 

ca me met la même chose!

n°2032387
Profil sup​primé
Posté le 26-10-2010 à 18:11:59  answer
 

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
n°2032393
syfrdy
Posté le 26-10-2010 à 18:32:02  profilanswer
 

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

n°2032404
Profil sup​primé
Posté le 26-10-2010 à 19:37:17  answer
 

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.

n°2032405
theshockwa​ve
I work at a firm named Koslow
Posté le 26-10-2010 à 19:39:21  profilanswer
 

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
n°2032420
syfrdy
Posté le 26-10-2010 à 20:44:35  profilanswer
 

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?

n°2032422
Profil sup​primé
Posté le 26-10-2010 à 20:53:06  answer
 

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 ?

n°2032427
syfrdy
Posté le 26-10-2010 à 21:30:23  profilanswer
 

windows xp pro! pk?

mood
Publicité
Posté le 26-10-2010 à 21:30:23  profilanswer
 

n°2032429
h3bus
Troll Inside
Posté le 26-10-2010 à 22:09:47  profilanswer
 

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++
n°2032436
syfrdy
Posté le 26-10-2010 à 22:31:35  profilanswer
 

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é!

n°2032441
breizhbugs
Posté le 26-10-2010 à 22:42:48  profilanswer
 

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:

n°2032443
syfrdy
Posté le 26-10-2010 à 22:52:39  profilanswer
 

cad?

n°2032447
h3bus
Troll Inside
Posté le 26-10-2010 à 23:04:22  profilanswer
 

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++
n°2032541
syfrdy
Posté le 27-10-2010 à 12:20:45  profilanswer
 

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

n°2032543
Un Program​meur
Posté le 27-10-2010 à 12:42:11  profilanswer
 

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)
n°2032549
Tangrim
Des bisous et des nounours !
Posté le 27-10-2010 à 13:20:45  profilanswer
 

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
n°2032560
syfrdy
Posté le 27-10-2010 à 14:02:47  profilanswer
 

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...

n°2032563
esox_ch
Posté le 27-10-2010 à 14:06:33  profilanswer
 

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
n°2032574
theshockwa​ve
I work at a firm named Koslow
Posté le 27-10-2010 à 14:19:53  profilanswer
 

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
n°2032575
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 27-10-2010 à 14:24:15  profilanswer
 

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.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  langage C, message d'erreur

 

Sujets relatifs
Ouvrir fenêtre Glut depuis fenêtre C#[C] tableau dynamique 2 dimension
[Apprentissage] Passage de Java à C#Erreur 6 Dépassement de capacité
Erreur 13 Incompatibilité de typeprobleme soft interrupt pour 'C' vers 'C++'
EF & C# : relation many to manyPassage Callback C++ / CLR
Modifier d'erreur 404 par défaut[C++/XLL] Portabilité d’une XLL compilée en Visual C++ 2008
Plus de sujets relatifs à : langage C, message d'erreur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR