Création
d'entreprise
Posez votre question Signaler

Fichiers et langage C

dool - Dernière réponse le 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+
Lire la suite 

Fichiers et langage C »

11 réponses
Réponse
+1
moins plus
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
gaga - 8 janv. 2012 à 18:35
c fclose
fiddy- 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...
Ajouter un commentaire
Réponse
+0
moins plus
salut nebul
la fonction read() est propre au C ??

merci de ton aide
:)
Nebul- 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é
dool - 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);
Ajouter un commentaire
Réponse
+0
moins plus
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?
Ajouter un commentaire
Réponse
+0
moins plus
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);
Ajouter un commentaire
Réponse
+0
moins plus
slt, je veux faire un programme en langage C qui met en ordre alphabetique les élèments d'un fichier, pouvez vous m'aider?
Ajouter un commentaire
Réponse
+0
moins plus
@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 "&"
fiddy- 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 ;-))).
Ajouter un commentaire
Ce document intitulé « fichiers et langage C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?