Langage C

Fermé
lamou23 Messages postés 178 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 21 mars 2011 - 29 mai 2010 à 19:50
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 - 29 mai 2010 à 23:52
salut

j'ia les problème suivant:

Énoncé Du T.P 4 :
Écrire un programme « C » qui permet :
1. De créer le fichier « employe.dat » avec les informations suivantes sur chaque employé : Nom, Prénom et Adresse (Numéro de rue,
nom de rue, nom de ville et code postal).
2. De consulter le fichier « employe.dat ».
3. De modifier l'adresse d'un employé donné. La recherche de l'employé dans le fichier se fait par le nom et le prénom.

j'ai commencé a progrmmer ceci:

**************************************
#include <cstdlib>
#include <iostream>
#include <stdio.h>


int main()
{
typedef struct { int num_rue[30];
char nom_rue[60];
char nom_ville[60];
int code_postal;}adresse;

typedef struct { char nom[30];
char prenom[30];
adresse adr;}etudiant;

etudiant e;int i;FILE*pf;int n;char m;char x;
/*ouverture du fichier*/
pf=fopen("etudiant.dat","wb");
if (pf==NULL) puts ("erreur d'ouverture du fichier");
else
{
printf ("donner la valeur de n\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{ printf ("donnez le nom de l'etudiant %d\n",i);
scanf("%s",e.nom);
printf ("donnez le prenom de l'etudiant %d\n",i);
scanf("%s",e.prenom);
printf ("donnez le numero de rue de l'adresse de l'etudiant %d\n",i);
scanf("%d",e.adr.num_rue);
printf ("donnez le nom de la rue de l'adresse de l'etudiant %d\n",i);
scanf("%s",&e.adr.nom_rue);
printf ("donnez le nom de la ville de l'etudiant %d\n",i);
scanf("%s",e.adr.nom_ville);
printf ("donnez le code postal %d\n",i);
scanf("%d",&e.adr.code_postal);

/*écriture dans le fichier*/
fwrite(&e,sizeof(e),1,pf);
}
fclose(pf);
}
int caractereActuel = 0;
pf = fopen("etudiant.dat", "r");

if ( pf!= NULL)
{
// Boucle de lecture des caractères un à un
do
{
caractereActuel = fgetc(pf); // On lit le caractère
printf("%c", caractereActuel); // On l'affiche
} while (caractereActuel != EOF); // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)

fclose(pf);
}




system("PAUSE");
return EXIT_SUCCESS;
}
*********************************************************




pour la 3 ème question j'ai pas su quelqu'un peut il m'aider?

merci
A voir également:

1 réponse

ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
29 mai 2010 à 23:52
1) Les premières lignes sont déjà mauvaises : pas question d'inclure des headers C++ dans un programme en C. main() a des paramètres et on déclare les structures tout au moins en tête de fichier après les includes :

#include <stdlib.h>
#include <stdio.h>

typedef struct
{
  int num_rue[30];
  char nom_rue[60];
  char nom_ville[60];
  int code_postal;
} adresse;

typedef struct {
  char nom[30];
  char prenom[30];
  adresse adr;
} etudiant; 

int main(int argc, char* argv[])
{ 


2) Tu devrais stocker le contenu du fichier dans une structure en mémoire (à mon sens c'est plus facile via liste chainée). Après il est simplissime de rechercher une entrée ou de sauvegarder à nouveau.
0