Fichiers et langage C

Fermé
dool - 19 avril 2004 à 11:00
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 8 janv. 2012 à 21:37
bonjour
j aimerais savoir s il est possible de lire dans un fichier en C sans avoir besoin de boucle
je m explique
j aimerais enregistrer dans un fichier des donnees variées, puis pouvoir les charger
le probleme c (hehe) que j ai l impression qu on ne peut pas faire plusieurs fscanf sur le mm fichier
si qq un a une solution...
merci
A+
A voir également:

6 réponses

Nebul Messages postés 22 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 2 juillet 2004 3
19 avril 2004 à 11:24
Bjour,

Y'a plein de façon de les lire les fichiers en C, moi jte propose l'exemple suivant avec une boucle malheureusement pour toi... je ne pense pas que ça existe sans :

fichier=open(nom,O_RDWR);
lu=read(fichier,&buffer,sizeof(buffer));
while(lu!=0)
{
lu=read(fichier,&buffer,sizeof(buffer));
}
close(fichier);

j'espère que ça pourra t'aider
2
c fclose
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
8 janv. 2012 à 21:37
Non c'est bien close dans ce cas, puisque fichier est un descripteur et non de type FILE*.
Et le post remonte à 2004...
0
salut nebul
la fonction read() est propre au C ??

merci de ton aide
:)
0
Nebul Messages postés 22 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 2 juillet 2004 3
19 avril 2004 à 11:51
oui oui oui d'ailleurs c pas la seule !!!
ya par exemple fgets(pas conseillé par moi), fgetc, read etc...

;) bonne continuation
j'espère que ça t'a aidé
0
dool > Nebul Messages postés 22 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 2 juillet 2004
19 avril 2004 à 17:48
j ai du mal...
pour que ce soit + clair
voici les donnees sauvegardees


/*sauvegarde des joueurs*/
fichier = fopen(NomFichier,"w");
fprintf(fichier,"%s\n",sJoueur1);
fprintf(fichier,"%s\n",sJoueur2);
fprintf(fichier,"%s\n",sJoueurc);

/*sauvegarde du nb de tour*/
fprintf(fichier,"%d\n",iTour);

/*sauvegarde de l'echiquier*/
for(i=1;i<9;i++)
{
for(j=1;j<9;j++)
{
temp=echiquier[i][j];
fprintf(fichier,"%c %d %d %d %d %d\n",temp.cNom,temp.iJoueur,temp.bAxial,temp.bDiago,temp.bBouge,temp.iEchec);
}
}

/*sauvegarde des cimetieres*/
for(i=0;i<16;i++)
{
temp=cimetiere_blanc[i];
fprintf(fichier,"%c %d %d %d %d %d\n",temp.cNom,temp.iJoueur,temp.bAxial,temp.bDiago,temp.bBouge,temp.iEchec);
}
for(i=0;i<16;i++)
{
temp=cimetiere_noir[i];
fprintf(fichier,"%c %d %d %d %d %d\n",temp.cNom,temp.iJoueur,temp.bAxial,temp.bDiago,temp.bBouge,temp.iEchec);
}
fclose(fichier);
printf("oOo\t La partie est sauvegardee dans le fichier %s\toOo\n",NomFichier);
0
le pb c ke j essaie d abord de lire des char (pas de pb) mais ensuite des int puis des structures composées de int et char
tu crois que je peux tt mettre ds le mm fichier
ou dois je faire des fichiers séparés?
0
pour que ce soit + clair
voici les éléments sauvegardés


/*sauvegarde des joueurs*/
fichier = fopen(NomFichier,"w");
fprintf(fichier,"%s\n",sJoueur1);
fprintf(fichier,"%s\n",sJoueur2);
fprintf(fichier,"%s\n",sJoueurc);

/*sauvegarde du nb de tour*/
fprintf(fichier,"%d\n",iTour);

/*sauvegarde de l'echiquier*/
for(i=1;i<9;i++)
{
for(j=1;j<9;j++)
{
temp=echiquier[i][j];
fprintf(fichier,"%c %d %d %d %d %d\n",temp.cNom,temp.iJoueur,temp.bAxial,temp.bDiago,temp.bBouge,temp.iEchec);
}
}

/*sauvegarde des cimetieres*/
for(i=0;i<16;i++)
{
temp=cimetiere_blanc[i];
fprintf(fichier,"%c %d %d %d %d %d\n",temp.cNom,temp.iJoueur,temp.bAxial,temp.bDiago,temp.bBouge,temp.iEchec);
}
for(i=0;i<16;i++)
{
temp=cimetiere_noir[i];
fprintf(fichier,"%c %d %d %d %d %d\n",temp.cNom,temp.iJoueur,temp.bAxial,temp.bDiago,temp.bBouge,temp.iEchec);
}
fclose(fichier);
printf("oOo\t La partie est sauvegardee dans le fichier %s\toOo\n",NomFichier);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
slt, je veux faire un programme en langage C qui met en ordre alphabetique les élèments d'un fichier, pouvez vous m'aider?
0
@somac : il faut que tu le parse avec str_jenesaisplusquoi() qui te decoupe les chaines de caractéres suivant un séparateur ( type : " ").

@Nebul : Je me trompe peut-être, mais ton buffer est déjà une adresse (a part si c'est un seul caractére)... donc pas besoin de "&"
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
8 avril 2011 à 09:10
Avant de répondre à un post, c'est bien de regarder la date.
Tu t'adresses à des personnes qui ont écrit entre 4 et 7 ans. Je doute qu'il te réponde, en tout cas, ils ne seront plus ce sujet ;-))).
0