Lire données pas à pas dans un fichier et stocker dans variables

Lire données pas à pas dans un fichier et stocker dans variables - C - Programmation

Marsh Posté le 14-03-2014 à 17:47:39    

Bonjour à tous !!
Complètement novice en C j'ai quelques soucis avec les fonctions fgetc et tutti quanti.
 
But :  
je dispose d'un fichier .txt organisé comme suit :
 
5
3
3 2 3 4  
2 -1 5  
3 1 -3 -4
 
Par exemple.  
 
J'ai besoin de stocker la première valeur dans une variable et la seconde dans une seconde pour les réutiliser ensuite.
J'ai ensuite besoin de pourvoir le déplacer dans les lignes du dessous !  
 
J'ai tenté d'utiliser la fonction fgetc une fois pour récupérer la première valeur (sur la première ligne) , puis une seconde fois pour récuperer la seconde valeur (sur la deuxième ligne) ... Marche pô !  
 
Voilà le code :  

Code :
  1. FILE *fic;
  2.     int nb_lignes=0;
  3.     int nb_cubelist = 0;
  4.     int nb_variables = 0;
  5.     char ligne_lue[512];
  6.     char nom_fic[255];
  7.     fic = fopen("part1.pcn","r" );
  8.     if (fic != NULL)
  9.         {
  10.         while (fgets(ligne_lue,512, fic)!= NULL)
  11.             {
  12.     nb_variables = fgetc(fic);
  13.     nb_cubelist = fgetc(fic);
  14.     printf("t%s",ligne_lue);
  15.     nb_lignes++;
  16.             }


printf("le fichier %s comporte %d lignes,%d variables et %d cubelists\n", nom_fic, nb_lignes, nb_variables,nb_cubelist);
    fclose(fic);
    return 0;
 
J'obtiens sur la console ça :  
t5
t3 2 3 4
t -1 5
t 1 -3 -4  
le fichier comporte 4 lignes, -1 variables et -1 cubelist
 
Bref absolument pas ce que je souhaite et je ne sais pas pourquoi !!  
des idées ???  
 
Merci pour vos réponses !


Message édité par oxydo2 le 14-03-2014 à 17:56:32
Reply

Marsh Posté le 14-03-2014 à 17:47:39   

Reply

Marsh Posté le 17-03-2014 à 21:02:25    

Si on résume l'exécution du code, il fait ça :
 
- fgets récupère "5\n"
- fgetc récupère '3'
- fgetc récupère '\n'
- nb_lignes reçoit 1
- fgets récupère "3 2 3 4\n"
- fgetc récupère '2' ou quelque chose d'autre
- fgetc récupère ' ' ou quelque chose d'autre
- nb_lignes reçoit 2
- fgets récupère " -1 5\n"
- fgetc récupère '3' ou quelque chose d'autre
- fgetc récupère ' ' ou quelque chose d'autre
- nb_lignes reçoit 3
- fgets récupère " 1 -3 -4\n"
- fgetc récupère rien : nb_variables reçoit -1
- fgetc récupère rien : nb_cubelist reçoit -1
- nb_lignes reçoit 4

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed