Lecture d'une ligne bien déterminée d'un fichier text
ayechtein
-
ayechtein -
ayechtein -
salem
Je veux copier et afficher les 3 premiers caractères(entiers) dans une ligne bien déterminée d'un fichier txt ayant cette forme:
001 mohamed
002 saleh
001 mohamed
005 ali
009 mourad
008 hend
007 mariem
006 amine
003 abir
004 alaya
Pouvez vous m'aider svp? et merci :)
Je veux copier et afficher les 3 premiers caractères(entiers) dans une ligne bien déterminée d'un fichier txt ayant cette forme:
001 mohamed
002 saleh
001 mohamed
005 ali
009 mourad
008 hend
007 mariem
006 amine
003 abir
004 alaya
Pouvez vous m'aider svp? et merci :)
A voir également:
- Lecture d'une ligne bien déterminée d'un fichier text
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
Bonjour,
Il faut faire une boucle pour lire tout le fichier et lorsque tu es à la ligne voulue tu recuperes les 3 premiers caracteres (sscanf()).
je te laisse faire un premier jet pour ton code. Poste-le ici pour qu'on puisse te corriger.
cdlt
Il faut faire une boucle pour lire tout le fichier et lorsque tu es à la ligne voulue tu recuperes les 3 premiers caracteres (sscanf()).
je te laisse faire un premier jet pour ton code. Poste-le ici pour qu'on puisse te corriger.
cdlt
#include <string.h>
int main()
{
int i,ligne;
FILE *fic;
char s[25],code[3];
printf("donner la ligne:\n");
scanf("%c",&ligne);
fic=fopen("utilisateur.txt","r");
rewind(fic);i=0;
while(fgetc(fic)!=EOF)
{
if (i==ligne*25+1)
sscanf("%3d",&code);
i++;
}
printf("%3d",code);
return(0);
}
int main()
{
int i,ligne;
FILE *fic;
char s[25],code[3];
printf("donner la ligne:\n");
scanf("%c",&ligne);
fic=fopen("utilisateur.txt","r");
rewind(fic);i=0;
while(fgetc(fic)!=EOF)
{
if (i==ligne*25+1)
sscanf("%3d",&code);
i++;
}
printf("%3d",code);
return(0);
}
Bonjour,
Il faut inclure stdio.h
scanf("%c",&ligne); => ligne est un entier. Utilise donc plutôt
rewind(fic); => inutile. Tu es déjà au début du fichier.
while(fgetc(fic)!=EOF) => Mets plutôt
en plus tu as déclaré la variable s sans t'en servir...
</ital>if(i==ligne*25+1)</ital> Que veux-tu faire ? Je verrais plutôt
sscanf("%3d",&code); => Tu as testé ton code au moins ? Cette erreur aurait dû être signalée... =>
cdlt,
Il faut inclure stdio.h
scanf("%c",&ligne); => ligne est un entier. Utilise donc plutôt
scanf("%d", &ligne);
rewind(fic); => inutile. Tu es déjà au début du fichier.
while(fgetc(fic)!=EOF) => Mets plutôt
while(fgets(s,sizeof s, fic))
en plus tu as déclaré la variable s sans t'en servir...
</ital>if(i==ligne*25+1)</ital> Que veux-tu faire ? Je verrais plutôt
if(i==ligne)
sscanf("%3d",&code); => Tu as testé ton code au moins ? Cette erreur aurait dû être signalée... =>
sscanf(s,"%s", code);Mais il faut mettre code sur 4 caractères. Il ne faut pas oublier que la chaîne se termine par \0.
cdlt,
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i,ligne,code;
FILE *fic;
char s[25];
printf("donner la ligne:\n");
scanf("%d",&ligne);
fic=fopen("utilisateur.txt","r+");
rewind(fic);i=1;
while(fgets(s,25,fic))
{
if (i==ligne)
sscanf(s,"%3d",&code);
i++;
}
printf("%3d",code);
return(0);
}
#include <stdlib.h>
#include <string.h>
int main()
{
int i,ligne,code;
FILE *fic;
char s[25];
printf("donner la ligne:\n");
scanf("%d",&ligne);
fic=fopen("utilisateur.txt","r+");
rewind(fic);i=1;
while(fgets(s,25,fic))
{
if (i==ligne)
sscanf(s,"%3d",&code);
i++;
}
printf("%3d",code);
return(0);
}
Tu n'as pas tenu compte de toutes mes remarques et tu as changé des choses que je n'avais pas dit (du coup tu rajoutes des fautes). Je te conseille donc de repartir de ton post initial, d'appliquer mon commentaire.
Lorsque tu postes ton code, merci d'utiliser la balise "code" située à droite du bouton "souligné", ça sera plus lisible. Et surtout, teste ton code dans un compilateur et dis-nous ce qui ne va pas...
Lorsque tu postes ton code, merci d'utiliser la balise "code" située à droite du bouton "souligné", ça sera plus lisible. Et surtout, teste ton code dans un compilateur et dis-nous ce qui ne va pas...