Bonsoir
J'ai un exercice qui consite à écrire une fonction qui prend en paramètre un fichier texte (qui contient sur chaque ligne un nom et un prénom) et qui doit inverser sur chaque ligne le nom et le prénom et en plus de numeroté chaque ligne.
Le fichier se présente de cette manière:
....
nom1 prenom1
nom2 prenom2
etc...
Le fichier final doit être:
...
1 prenom1 nom1
2 prenom2 nom2
etc...
La seule contrainte à cette exercice est que je dois utilisée les fonctions fseek et ftell.
J'ai commencé à écrire ma fonction mais elle ne compile pas :/
code:
Merci d'avance pour vos solutions
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
36
37 #include <stdio.h> #include <stdlib.h> void inverse (char *filename); int main () { inverse ("tp"); return 0; } void inverse (char *filename) { FILE *fp=fopen (filename, "r+"); rewind (fp); int i=0; char s[1000]; char nom [20]; char prenom [20]; long pos; while (!feof (fp)) { pos = ftell (fp); i++; fgets (s, 1000, fp); sscanf (s, "%s %s\n" ,nom ,prenom); fseek (fp, pos, SEEK_SET); fprintf (fp, "%d %s %s\n", i, prenom, nom); s[1000]= '\0'; fgets (s, 1000, fp); //fseek (fp, 0L, SEEK_CUR); if (i==2) break; } //rewind (fp); fclose (fp); }
Partager