A voir également:
- C retour a la ligne
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
2 réponses
Bonjour,
Un peu tard peut être. N'y aurait-il pas un schmilblic avec la chaîne de formatage utilisée dans fscanf (fscanf(vf1,"%i:%i:%i",&time[i][1] ...) ? Les données reçues du fichier csv sont en caractères et le flag %i fait la conversion en entier (sauf erreur). Si c'est le cas, le caractère 9 devient une tabulation (ce qui n'est pas un retour chariot, je suis d'accord). Si c'est pour simplement afficher les données, pourquoi ne pas tout traiter sous forme de chaîne de caractères ?
Un peu tard peut être. N'y aurait-il pas un schmilblic avec la chaîne de formatage utilisée dans fscanf (fscanf(vf1,"%i:%i:%i",&time[i][1] ...) ? Les données reçues du fichier csv sont en caractères et le flag %i fait la conversion en entier (sauf erreur). Si c'est le cas, le caractère 9 devient une tabulation (ce qui n'est pas un retour chariot, je suis d'accord). Si c'est pour simplement afficher les données, pourquoi ne pas tout traiter sous forme de chaîne de caractères ?
Salut,
Pourrais-tu donner un peu plus de ton code comme la déclaration des variables. Le top serait d'avoir le main qui va avec.
Et peux-tu ré-expliquer ton problème des 8 et 9, car je ne vois pas ce qui ne va pas avec ta trace d'exécution (hormis le fait qu'il n'y a pas correspondance avec les valeurs lues dans le CSV).
Sinon déjà en conseil, enlève le '\n' de tes fscanf.
Voici un code fonctionnel :
Cdlt
Pourrais-tu donner un peu plus de ton code comme la déclaration des variables. Le top serait d'avoir le main qui va avec.
Et peux-tu ré-expliquer ton problème des 8 et 9, car je ne vois pas ce qui ne va pas avec ta trace d'exécution (hormis le fait qu'il n'y a pas correspondance avec les valeurs lues dans le CSV).
Sinon déjà en conseil, enlève le '\n' de tes fscanf.
Voici un code fonctionnel :
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *fp=fopen("a.tmp","r"); if(fp==NULL) { fputs("erreur ouverture fichier\n",stderr); return EXIT_FAILURE; }else { int time[15][3]; double particle[15],positive[15],negative[15],AE[15]; int i=0; while(!feof(fp)) { if(fscanf(fp,"%d:%d:%d;%lf;%lf;%lf;%lf", &time[i][1],&time[i][2],&time[i][3],particle+i, positive+i,negative+i,AE+i)==7) { printf("time : %d : %d : %d\n",time[i][1],time[i][2],time[i][3]); printf("line : %.1f,%.1f,%.1f,%.1f\n",particle[i],positive[i],negative[i],AE[i]); i++; } } fclose(fp),fp=NULL; } return 0; }
Cdlt
Ben c'est une erreur ^^.
Le caractère sera bien représenté en nombre avec %i, il n'y a pas de souci à ce niveau.
Cdlt