merci medinoc, mais je comprends pas ce que tu veux dire par ligne inachevée.
:oops:
moi je vois bien une ligne qui se termine par un point :aie:
Version imprimable
Sauf que le programme ne voit une ligne que si elle est terminée par un \n.
Si tu veux détecter les lignes inachevées, il faut ajouter au programme un truc de ce genre:
Code:
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
38
39
40
41
42
43
44
45
46 #include<stdio.h> #include<stdlib.h> #include<string.h> /* #include<memory.h> Ce header n'est pas standard */ #define PATH "C:\\essai.txt" int main() { FILE *F=NULL; printf ("nombre de lignes \n----------------------------------\n"); F = fopen (PATH, "r"); if (F != NULL) { char buffer[BUFSIZ]; size_t nb_read; int res = 0; char last = '\n'; while ((nb_read = fread (buffer, 1, sizeof buffer, F)) > 0) { int i; for (i = 0; i < nb_read; i++) { last = buffer[i]; if (last == '\n') { res++; } } } fclose (F), F=NULL; /* Si le dernier caractère n'est pas un \n, c'est qu'on a une ligne inachevée à la fin du fichier. */ if(last != '\n') res++; printf ("%i\n", res); } else { perror (PATH); } return 0; }
merci Médinoc :P