A voir également:
- Lecture d'une ligne bien déterminée d'un fichier text
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
21 déc. 2013 à 18:26
21 déc. 2013 à 18:26
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);
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
21 déc. 2013 à 21:31
21 déc. 2013 à 21:31
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);
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
21 déc. 2013 à 21:42
21 déc. 2013 à 21:42
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...