bonjour,

Je tente désespérément de lire un fichier texte dont les champs sont séparés par ':'.
Le 2eme champs est variable et comporte un ou plusieurs espaces.

Voici mon code et le format du fichier, pouvez vous m'aider ? D'avance merci.

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
 
#include <stdio.h>
#include <string.h>
 
/*file format
nom1:PATRICK DUCHMOL:S:2:4:3:30:0
nom2:HERVE DUCHMOL DE LA POTEE::1:9:6:20:9
*/
int main()
{
FILE * fd  = NULL ;
char flag [5];
char nom[50];
char s[2] ;
int st1 ;
int st2 ;
int st3 ;
int po ;
int ti ;
 
if((fd=fopen("./file.txt", "r"))==NULL) {
printf("Error\n") ;
}
 
while(!feof(fd)) {
 
if(fscanf(fd, "%s:%[^:]:%s:%d:%d:%d:%d:%d", flag, nom, s, &st1, &st2, &st3, &po, &ti) != 8)
printf("%s\n", nom) ;
else
fprintf(stderr, "Format error.\n") ;
}
 
fclose(fd) ;
 
}