begin process at 2012 05 30 01:37:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

probleme d'affichage des donnes d 'un fichier ou pb d'enregistrement des donnees?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme d'affichage des donnes d 'un fichier ou pb d'enregistrement des donnees?

jeudi 17 juin 2004 à 18:09:56 | probleme d'affichage des donnes d 'un fichier ou pb d'enregistrement des donnees?

Yossi

bonjour,
voici ma structure:
struct adherents{
int numadherent;
char nom[25];
char prenom[30];
char adresse[80];
char cp[5];
char ville[40];
};

voici mon code pour l'enregistrement d 'un adherent:

struct adherents s;
FILE *pf=NULL;
pf=fopen("adherents","rb");
s.numadherent=0;
if (pf==NULL)
{
pf=fopen("adherents","w+b");
}
else
{
fclose(pf);
pf=fopen("adherents","a+b");
fread(&s,sizeof(s),1,pf);
while(fread(&s,sizeof(s),1,pf),!feof(pf)){}

}
s.numadherent++;
printf("\nNumero de l'adherent : %d\n",s.numadherent);

printf("\nNom:\n");
gets(s.nom);
fflush(stdin);
printf("\nPrenom:\n");
gets(s.prenom);
fflush(stdin);
printf("\nAdresse:\n");
gets(s.adresse);
fflush(stdin);
printf("\nCode postal:\n");
gets(s.cp);
fflush(stdin);
printf("\nVille:\n");
gets(s.ville);
fflush(stdin);

fwrite(&s,sizeof(s),1,pf);
fclose(pf);
printf("\nAdherent enregistre\n");
system("pause");





et voici mon code pour l'affichage des donnees:
printf("\nEntrez le numero d'adherent\n");

int num=0;
scanf("%d",&num);
struct adherents s;
FILE *pf=NULL;
pf=fopen("adherents","rb");

if (pf!=NULL)
{
while (fread(&s,sizeof(s),1,pf),!feof(pf)&& num!=s.numadherent)
{

}

if (feof(pf))
{
printf("Adherent non trouve\n");
}
else
{
printf("Informations sur l'adherent numero %d\n\n",s.numadherent);
printf("\nNom : %s",s.nom);
printf("\nPrenom : %s",s.prenom);
printf("\nAdresse : %s",s.adresse);
printf("\ncode postal : %s",s.cp);
printf("\nVille : %s\n",s.ville);
}
fclose(pf);
}
else
{
printf("Aucun adherent n'est enregistre\n");
}
system("pause");


voila . mon probleme c'est que au lieu de donner comme code postal par exemple : "75011" ca donne "75011paris" (le code postal et la ville). si vous savez d'ou vient le probleme ca m'aiderait beaucoup. Merci d'avance.



Yossi
jeudi 17 juin 2004 à 19:49:20 | Re : probleme d'affichage des donnes d 'un fichier ou pb d'enregistrement des donnees?

ShareVB

salut

en fait, un tableau char est traité comme un pointeur par printf, et comme cp fait 5 caracteres max et 75011 5 aussi, il n'y a donc pas de null à la fin des char. Les données de ville suivent celle de cp. Donc en mémoire à l'adresse de cp on a : "75011paris/0" ...ceci explique cet affichage... si on fait un strlen il renverra 10...

printf affiche une chaine du début au premier null...

il faut donc que tu mettes :
printf("\ncode postal : %.5s",s.cp);
//5 caracteres maxi

voilà

ShareVB
jeudi 17 juin 2004 à 22:50:04 | Re : probleme d'affichage des donnes d 'un fichier ou pb d'enregistrement des donnees?

ymca2003

le mieux c'est de prévoir la place pour le nul de terminaison dans les chaînes de la structure, car si tu copie une chaîne dans le champ cp, le nul risque d'écraser le champs suivant.
vendredi 18 juin 2004 à 10:31:00 | Re : probleme d'affichage des donnes d 'un fichier ou pb d'enregistrement des donnees?

Yossi

Merci beaucoup à vous deux!!
Yossi


Cette discussion est classée dans : printf, pf, adherent, adherents, numadherent


Répondre à ce message

Sujets en rapport avec ce message

probleme de comparaison de membre de structure par rapport a une donnée de fichier [ par Yossi ] bonjour struct adherents{ int numadherent; char nom[25]; char prenom[30]; char adresse[80]; char cp[5]; char ville[40]; };j'ai un probleme (surement u Besoin d'aide pour ce code [ par pacolo ] #include#include struct eleve   { char nom[20];     char prenom[30];     char sexe[2];     int age;      }      feleve;   int main ()    {int Age;  FI un probléme avec la lecture de fichier [ par sanae19 ] bonsoir en fait voila j'ai un petit probléme de lecture de fichier en fait ma, methode marche tres bien tout seule mai le probléme c'est qu'elle enreg Probleme de boucle infinie [ par darkwhite ] Salut à tous, abcrésultat000000100 probleme d'ouverture de fichier [ par totoscill ] Bonjour,j'aimerai ouvrir un fichier afin de lire des infos inclus dans celui ci mais mon programme n'arrive pas à l'ouvrir.Voici mon code:#include<fon Ecrire un exe lentement problème 0D0A [ par sebastienmz ] Bonjour quand j'écrit mon exe mon programme rajoute un \n quand il y a dans le buffer un \r et vice versa voici mon code :#include #include int main(i pb de redirection [ par grums45 ] bonjour je suis étudiant en informatique, dans le cadre d'un stage j'ai une application réseau à réaliser en c. Mon problème est le suivant suite à la probleme en c avec fgets [ par le_mariole ] Bonjour voila dans mon programme le code suivant est zappé ,le programme 'zap' la fonction fgets si quelqu'un savait pourquoi...merci d'avance...print aide pour code C [ par tarkos01 ] je voudrais  comprendre les pointeurs et les chaines, j'ai commencé a taper un morceaux de code en C mais il y a un probleme. je ne vois pas lequel ma effacer l'ecran pour afficher d'autre texte... [ par S_M_E ] voici mon programme, j'essaye d'effacer l'écran en utilisant cls ou system("cls") mais que DALE, apparement je n'utilise pas la bonne librairie laquel


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,028 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales