Bonjour,
je veux passer des données dans une pipe, en fait les donnée sont sous format des structures(struct). est ce qu'il y a une possibilité de convertir un struct en char*.
merci.
Bonjour,
je veux passer des données dans une pipe, en fait les donnée sont sous format des structures(struct). est ce qu'il y a une possibilité de convertir un struct en char*.
merci.
char * est un simple pointeur sur char. Que veux-tu faire exactement ? Si il s'agit de former une chaine de caractères selon un format bien défini, à partir de s données d'une structure, oui, bien sûr, c'est possible. Pour ça, en général sprintf() suffit.
Attention à ce que le tableau de char de destination (qui va donc contenir la chaine) soit de taille suffisante. Les débordements ne sont pas contrôlés en C et tout dépassement entraine un comportement indéterminé (un bug...)
Si l'environnement de développement le permet, utilise snprintf().
Si par char *, je essaie de dire "chaine de caractères", il te suffit d'écrire la représentation sous forme de chaine de chaque chaque champ de ta structure dans un tampon:
Thierry
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 #include <stdio.h> #include <string.h> #define BUFFER_SIZE 128 struct MaStruct { int a; double b; char s[32]; }; int main(void) { char buffer[BUFFER_SIZE] = ""; struct MaStruct s1 = {10, 3.1415, "Dvp.com"}; /* -tc- Cette fonction est C99. Pour du C90 strict, utiliser sprintf() */ snprintf(buffer, sizeof buffer, "%d,%f,%s", s1.a, s1.b, s1.s); puts(buffer); return 0; }
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Partager