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
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+
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:
- Fichiers et langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Fichiers epub - Guide
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
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
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
salut nebul
la fonction read() est propre au C ??
merci de ton aide
:)
la fonction read() est propre au C ??
merci de ton aide
:)
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
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é
ya par exemple fgets(pas conseillé par moi), fgetc, read etc...
;) bonne continuation
j'espère que ça t'a aidé
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
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);
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);
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?
tu crois que je peux tt mettre ds le mm fichier
ou dois je faire des fichiers séparés?
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);
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);
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?
@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 "&"
@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
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 845
8 avril 2011 à 09:10
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 ;-))).
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 ;-))).
8 janv. 2012 à 18:35
8 janv. 2012 à 21:37
Et le post remonte à 2004...