bonjours,
j'ai un entier compris entre 0 et 4095
=> comment faire pour le convertir en une chaine de caractère qui fasse toujours 4 caractères ?
ex : 1 => "0001"
bonjours,
j'ai un entier compris entre 0 et 4095
=> comment faire pour le convertir en une chaine de caractère qui fasse toujours 4 caractères ?
ex : 1 => "0001"
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf ( "%04d", nb );![]()
Envoyé par Emcy
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sprintf(chaine, "%04d", nb);
j'ai le code suivant :
=> j'ai le message d'avertissement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part sprintf((char*)&chaine_debug, "%04d", TabVLAN_Filter[myRow].ID);
les définitions des variables sont :type qualifier mismatch in assignment
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 extern char chaine_debug[70]; // variable global static unsigned char myRow; // variable locale // ******** structure VLAN Filter ******************** typedef struct _StructA { unsigned int Enb:1; unsigned int Member:5; unsigned int NU:2; // bits non utilisés } StructA; typedef struct _StructB { unsigned int Priority:3; unsigned int Tagged:5; } StructB; typedef struct _StructVLAN { unsigned int ID; StructA A; StructB B; } StructVLAN; extern StructVLAN TabVLAN_Filter[16]; // variable global // ***************************************************
Code : Sélectionner tout - Visualiser dans une fenêtre à part sprintf(chaine_debug, "%04d", TabVLAN_Filter[myRow].ID);
c'est vrai que j'ai fait une erruer sur ce point mais j'ai toujours le meme message d'erreur...
Etes-vous bien sûr que l'erreur est sur cette ligne, car il n'y a pas vraiment d'assignment explicite sur cette ligne.Envoyé par Emcy
Quel message d'erreur ? Tu as parlé d'un warning...Envoyé par Emcy
Le & devant un nom de tableau n'est pas utilisé normalement, cependant ce n'est pas une erreur et &a signifie a si a est un tableau.Envoyé par souviron34
Si, c'est une erreur de compréhension du langage C. C'est grave.Envoyé par stephl
- a désigne un tableau de N éléments de type T. Il a pour valeur l'adresse du premier élément du tableau. Il a pour type T*.
- &a est l'adresse du tableau. Il a certes la même valeur que a mais le type est différent : T(*)[N]. (EDIT)
si jamais a est un pointeur, c'est le drame.
Donc pas de &.
Pour en revenir au problème initial :
1) Nous sommes sur le forum C et non C++ .
2)
Envoyé par stephl
- sprintf attend un char *.
- Or le P.O a donné
donc chaine_debug est un char *
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 extern char chaine_debug[70];- &chaine_debug est un char **
CQFD..
Envoyé par Emcy
Faut pas chercher des trucs tordus ou compliqués...
Code : Sélectionner tout - Visualiser dans une fenêtre à part sprintf(chaine_debug, "%04u", TabVLAN_Filter[myRow].ID);
Envoyé par Emcy
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char chaine[5]; sprintf (chaine, "%04u", entier_non_signe);
Partager