Bonjour à tous,

J'ai en entrée un fichier texte contenant plusieurs lignes de 24 caractères chacune.
000101011101001000111010
001011011100011101100001
010010111101000010001111

j'effectue une séparation de chaque ligne en 3 parties pour obtenir addr (4 premier caractères) cpt (8 caractères) et valeur (12 derniers carctères).

ligne: 000101011101001000111010
Adresse = 0001 à Cpt = 01011101 est de Valeur = 001000111010

j'affiche ainsi de cette manière toutes les lignes de mon fichier.

Ce que je voudrais faire maintenant c'est en fonction de l'adresse j'affiche quelques chose et également pouvoir convertir cpt en décimale (char to dec).

par exemple pour mon premier cas
ligne: 000101011101001000111010
Adresse = 0001 à Cpt = 01011101 est de Valeur = 001000111010

je voudrais afficher TARI à 93 est de Valeur = 001000111010.

Malheureusement avec mon code je n'obtiens pas le résultat attendu et je ne trouve aucune fonction pour convertir le char en décimale.
Si quelqu'un à une idée pour résoudre mon problème je lui en serais reconnaissant.
voila mon code
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
71
72
73
74
75
76
#include <stdio.h>
#include <stdlib.h>
#define ENTREE "resultat_trie.txt"
 
int main(void)
{
  FILE *f_in;
  int i=0;
  char addr[5] = {0};
  char tari[5] = {0001};
  char rtcal[5] = {0010};
  char trcal[5] = {0100};
  char* paddr= addr;
  int cmp=0, cmp1=0, cmp2=0;
  char cpt [9] = {0};
  char val_reg [13] = {0};
 
/************************ OUVERTURE FICHIER *********************************/
 
  if ((f_in = fopen(ENTREE,"r")) == NULL)
    {
      fprintf(stderr, "\nErreur: Impossible de lire le fichier %s\n",ENTREE);
      return(EXIT_FAILURE);
    }
 
/***************** PARCOURS DU FICHIER LIGNE PAR LIGNE***********************/
 
   		if ( f_in != NULL )
   {
      char line [ 128 ]; /* or other suitable maximum line size */
 
      while ( fgets ( line, sizeof line, f_in ) != NULL ) /* read a line */
      {
         printf("Ligne : %s", line); /* write the line */
		for(; i < 4; addr[i] = line[i], i++);
   	 	for(; i < 12; cpt[i-4] = line[i], i++);
   	 	for(; i < 24; val_reg[i-12] = line[i], i++);
		cmp = strcmp (addr, tari);
		cmp1 = strcmp (addr, trcal);
		cmp2 = strcmp (addr, rtcal);
	 if (cmp == 0)
		{
		printf("TARI à ");
  	        printf("Cpt = %s  ", cpt);
   	 	printf("est Valeur = %s\r\n", val_reg);
	 	printf("\r\n");
	 	i=0;
 
		}		
	if (cmp1 == 0)	
		{printf("RTCAL à ");
  	        printf("Cpt = %s  ", cpt);
   	 	printf("est Valeur = %s\r\n", val_reg);
	 	printf("\r\n");
	 	i=0;
 
		}
	if (cmp2 == 0)
		{printf("TRCAL à ");
  	        printf("Cpt = %s  ", cpt);
   	 	printf("est Valeur = %s\r\n", val_reg);
	 	printf("\r\n");
	 	i=0;
 
		}
 
 
      }
      fclose ( f_in );
   }
   else
   {
      perror ( ENTREE ); /* why didn't the file open? */
   }
   return 0;
}