Je déteste être le type qui pose des questions faciles, mais je suis un peu rouillé dans mon C et quelque chose m'échappe ici. J'essaie de lire un fichier contenant l'exemple de texte suivant :
23# 1110.00:1000.00,120.00:1110.00,1190.00:900.00,-52.98,-53.21
Je veux séparer en plusieurs chaînes les éléments divisés par le cardinal et les virgules, mais dans ma console, je n'obtiens aucun résultat.
#include <stdio.h> /* required for file operations */
#include <conio.h> /* for clrscr */
#include <dos.h> /* for delay */
FILE *fr; /* declare the file pointer */
#include <stdio.h>
int main(void)
{
char output[200];
const char filename[] = "file.txt";
FILE *file = fopen(filename, "r");
if ( file )
{
char line [ BUFSIZ ];
while ( fgets(line, sizeof line, file) )
{ printf(" %s \n", line);
char * i[80],pt1[80], pt2[80], pt3[80], tp1[80], tp2[80];
if ( sscanf(line, "%s# %s,%s,%s,%s,%s",
&i, &pt1, &pt2, &pt3, &tp1, &tp2) == 6 )
{
snprintf(output, sizeof output,
"Leitura:=%s,PT1=%s,PT2=%s,PT3=%s,TP1=%s,TP2=%s,",
i, pt1, pt2, pt3, tp1, tp2);
puts(output);
}
}
}
else
{
perror(filename);
}
return 0;
}