Problème en langage C

Fermé
Olbi - 2 août 2004 à 18:42
 Onde2Choc - 2 août 2004 à 20:09
Bonsoir,

J'aimerai lire un fichier dans lequel se trouve des lignes de longueurs variables. Je ne vois comment faire. Pour le moment voici ce que je fais:
#include<stdio.h>
void main()
{ char ligne[51];
int i=0;
FILE *entree;
entree=fopen("Fichier.txt","r");
while(!feof(entree))
{ fread(ligne,sizeof(ligne),1,entree);
printf("%d %s",i,ligne);
}
}
C'est un exercice d'école. Il faut lire un fichier et le recopier avec un numero de ligne.
je vous remercie d'avance pour votre aide.
Olbi

3 réponses

Je suis très débutant en C, alors vérifie quand même, mais je crois que ton tableau ligne devrait ce déclarer comme ça :
char ligne[51] = new char[];

mais je n'en suis pas sûr, je confonds peut être avec le Java où je suis également débutant.
0
Salut, vu que c'est un exercice d'école, je vais me contenter de te donner des pistes ;-)
1-fais gaffe à l'utilisation de "sizeof()", dans ton exemple, "ligne" est une autre façon de noter l'adresse de la variable "ligne[0]", sizeof d'une adresse te renvera donc toujours 4, et sûrement pas la taille de ton tableau.
2-Ensuite, à mon avis, le plus simple c'est pas de lire une ligne de taille variable, mais tout simplement de lire les caractères un par un et de les recopier tel quel. Il te suffit de tester le caractère ainsi lu avant de le recopier, pour agir en conséquence quand c'est un caractère de fin de ligne.
Je n'en dirais pas plus pour l'instant :-p
Ah si, pour Onde2choc : oui tu confond ;-)
Bonne exercice.
0
Argh :-S Comme dirait Gotlieb, "Enfer et damnation, je suis fait !" Bon... j'ai plus qu'à relire "Penser en Java" ;-) ça m'apprendra à apprendre 3 langages en même temps !
0