Bonjour
J'essaye de lire un fichier qui contient des donnees, et mon programme devra lire le contenu et stocker le contenu lu dans des variables de type char. Mon code maintenant ne commence a stocker qu'a partir de la troisieme ligne. Je ne vois pas ou est le probleme.
Un exemple de fichier sf
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 int parser (void) { int n = 0; char buffer [ 81 ]; char arg[50][9]; // tableau pour les donnees /* Verifier le succes de l'ouverture */ if ( ( sf = fopen ( fname, "r" ) ) == NULL ) { fprintf ( stderr, "MAKELIST: Unable to open %s!\n", fname ); exit ( 1 ); } /* Lecture du fichier */ fgets ( buffer, 81, sf ); while ( ! feof ( sf ) ) { fputs ( buffer, stdout ); /* si un des mots contenus dans le fichier est "add", chercher si un deuxieme mot dans la meme ligne existe, puis le stocker lui aussi */ if (strcmp(arg[n],"add")){ fscanf(sf, "%s %s\n", arg[n], arg[n+1]); } // Stocker tout les mots tant que la while loop s'execute fscanf(sf, "%s\n", arg[n]); // imprimer ce qui a ete stocker pour tester printf("%s\n", arg[n]); fgets ( buffer, 81, sf ); n++; // incrementer le compteur } fclose ( sf ); //fermer le fichier return 0; }
L'output de la ligne printf("%s\n", arg[n]);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 un deux add qqchose trois quat
Normalement, l'output devrait etre le meme que le fichier sf.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 add qqchose
Comment faire pour ne pas avoir le retour de la ligne quand add est lue.
Pourquoi un et deux n'ont pas ete lue et imprimee ?
PS: la variable fname a ete declare en tant que static (pour une utilisation ulterieur dans d'autres fonctions).
Merci de votre aide.
Partager