Bonjour à tous,

Voila mon problème, j'ai in fichier texte en entrée qui contient une rafale de "0" et de "1", le but de mon programme est de trier ce fichier pour avoir une meilleure lisibilité de mon fichier.
J'ai besoin de séparer le contenu en plusieurs lignes de 24 bits (déjà fait et fonctionnel ) puis je doit extraire de ces 24 bits trois champs de tailles différentes pour ensuite les affichés à savoir champ1 4 bits, champ2 8 bits et champ3 12 bits.
J'ai beau essayer je n'arrive pas à découper les lignes .
Ci joint mon code pour la séparation en plusieurs lignes.
Merci d'avance pour votre aide tout le monde .

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
#include <stdlib.h>
#define ENTREE "test_trie.txt"
#define SORTIE "resultat_trie.txt"
 
int main(void)
{
  FILE *f_in, *f_out;
  int tab;
  int compteur1 = 0;
  int compteur2 = 0;
  int compteur3 = 0;
  int taille = 0;
  int addr = 4;
  int cpt = 8;
  int val_reg = 12;
 
/************ OUVERTURE FICHIER *********************************/
 
  if ((f_in = fopen(ENTREE,"r")) == NULL)
    {
      fprintf(stderr, "\nErreur: Impossible de lire le fichier %s\n",ENTREE);
      return(EXIT_FAILURE);
    }
  if ((f_out = fopen(SORTIE,"w")) == NULL)
    {
      fprintf(stderr, "\nErreur: Impossible d'ecrire dans le fichier %s\n", \
SORTIE);
      return(EXIT_FAILURE);
    }
 
/************* PARCOURS DU FICHIER *****************************/
 
   		while(fgetc(f_in) != EOF)
    		compteur1 ++; /* incrémentation du compteur */
 
 
/************* CALCULER LE NOMBRE DE CARACTERES ****************/
 
printf("Le nombre de caracteres du fichier est de : %d\r\n", compteur1);
 
/************* CHOIX DE LA TAILLE DE DECOUPAGE *****************/
 
printf("Entrer la taille du registre : ");
scanf("%d", &taille); 
 
/************* RECOPIE CARACTERE PAR CARACTERE ET TRIE *********/
 
if((f_in = fopen(ENTREE, "r")) != NULL) 
{
   while (!feof(f_in))
   {
      if (compteur2 !=taille)
	{
      fread(&tab, 1, 1, f_in);
      fputc(tab, f_out);
      compteur2++;
	}
      else
        {
         fputs ("\r\n",f_out);
	 compteur2=0;
        }
   }
}
 
  fclose(f_in);
  fclose(f_out);
  return(EXIT_SUCCESS);
}