[C] Probleme de déclaration.

Probleme de déclaration. [C] - C++ - Programmation

Marsh Posté le 02-05-2002 à 20:45:36    

Slt a tous, c'est encore moi...
Je crée un programme qui crée un ficher et qui y rentre des infos...
 
Mais la maintenant il me dit que "TEST" n'est pas declaré, pourtant c'est une fonction, enfin si quelqu'un pouvait jeter un coup d'oeil, merci.
 
 

Citation :

#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#define END 64
 
 
struct test
{  int age;
   char nom[20];
};
 
main()
{
 FILE *fp;
 char filename[81];
 int i, rep1, rep2;
 int c;
 struct test x;
 
 //clrscr();
 printf("Enregistrement dans le fichier DBPROJET.dat\n" );
 
 
 do
   {
     gets(filename);
            strcpy(filename, "c:\\KEYAERT\\DBPORJET.dat" );
     if ((fp = fopen(filename, "wb" )) !=NULL)
 
        {
  printf("Fichier existant. Le remplacer? (o/n)" );
  rep1  = getche();
  rep1 = toupper(rep1);
  if (rep1 !='O';)
     fclose(fp);
        }
 
      else
  break;
 
     } while (rep1 == '0';);
 
/*   if (fp !=NULL)
      fclose(fp);
   if ((fp = fopen(filename, "rw" )) == NULL)
      {
        printf("\n****Impossible d'?crire dans le fichier.****\n" );
        exit(1);
      }
    printf ("\nEntrez votre texte (Fin par <@> + <Entr?e> :\n" );
 
    //while (( c = getchar()) !=END)
  */    x.age = 20;
    strcpy(x.nom,"Dupont" );
    fwrite(&x,sizeof(struct test),1, fp);
    x.age = 22;
    strcpy(x.nom,"Durand" );
    fwrite(&x,sizeof(struct test),1, fp);
 
 
    fclose(fp);
 
 
    /*******Affichage du contenu du fichier*******/
 
 
/*    printf("Afficher le fichier? (o/n)" );
    rep2 = getche();
    rep2 = toupper(rep2);
    if (rep2 == 'O';)
    {
*/      if ((fp = fopen(filename, "rb" )) == NULL)
         {
   printf ("\nErreur d'ouverture du fichier.\n" );
   exit(2);
         }
       printf("\nContenu du fichier %s :\n", filename);
       i=0;
       fread(&x,sizeof test,1,fp);
 
       while (!feof(fp))
        {
         puts(x.nom);
    fread(&x,sizeof test,1,fp);
        }
/*         if (i==20)
   {
    printf("\n<Entr?e> pour page suivante." );
    getch();
    i=0;
   }
         }
    fclose(fp);
  }
*/      getch(); }
 
 
 
 
 


 
bcp de commandes sont mise en commentaire, le temps de tout tester pas à pas.
 
merci


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
Reply

Marsh Posté le 02-05-2002 à 20:45:36   

Reply

Marsh Posté le 02-05-2002 à 22:47:15    

Dans la compilation, chez moi, ça bloque sur le "sizeof test".
Et c'est normal... Il faut faire "sizeof(struct test)".
Car tu n'as pas déclaré "test" comme alias de "struct test" !
 
voilà !

Reply

Marsh Posté le 02-05-2002 à 23:13:06    

merci ;-)
 
J'ai aussi decouvert que je devais mettre

Citation :

void clrscr();


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
Reply

Marsh Posté le 03-05-2002 à 00:52:05    

En fait, tu as deux possibilités ici:
Soit tu modifies ta structure comme suit:
 
struct test
{  int age;
  char nom[20];
} test;
 
Et le compilo C la compilera,
soit tu renommes ton fichier en .cpp, et le compilo C++ le compilera a condition que tu rajoutes un  
return 0;  
a la fin de ta procedure principale.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

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