Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ?
Je ne pense pas qu'il en existe. Ce que je sais faire, c'est écrire des entiers en hexa l'un aprèe l'autre.
Où trouver une référence complète de ce que veut dire %08X , %02X etc... ?
Dans une documentation C ? Les pages de man (Unix) % man -s3C printf % man -a printf Un bouquin de C J'ai longtemps utilisé le célèbre K&R Mais actuellement, c'est ``C: a reference manual'', Samuel P. Harbision et Guy L. Steele
-- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
In article <424aa235$0$18943$636a15ce@news.free.fr>, Francois wrote:
Salut,
Quel est le masque à utiliser pour printer une chaine en hexa dans un
fichier ?
Je ne pense pas qu'il en existe. Ce que je sais faire, c'est
écrire des entiers en hexa l'un aprèe l'autre.
Où trouver une référence complète de ce que veut dire %08X , %02X etc... ?
Dans une documentation C ?
Les pages de man (Unix)
% man -s3C printf
% man -a printf
Un bouquin de C
J'ai longtemps utilisé le célèbre K&R
Mais actuellement, c'est ``C: a reference manual'', Samuel
P. Harbision et Guy L. Steele
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ?
Je ne pense pas qu'il en existe. Ce que je sais faire, c'est écrire des entiers en hexa l'un aprèe l'autre.
Où trouver une référence complète de ce que veut dire %08X , %02X etc... ?
Dans une documentation C ? Les pages de man (Unix) % man -s3C printf % man -a printf Un bouquin de C J'ai longtemps utilisé le célèbre K&R Mais actuellement, c'est ``C: a reference manual'', Samuel P. Harbision et Guy L. Steele
-- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Antoine Leca
En news:424aa235$0$18943$, Francois va escriure:
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ?
% [les drapeaux] x % [les drapeaux] X
Le premier utilise des minuscules, l'autre des capitales.
Où trouver une référence complète de ce que veut dire %08X , %02X
Tout plein d'endroits. Pour ce que tu veux faire:
Groupe1: - justifie à gauche # force 0x/0X à gauche 0 justifie avec des zéros à gauche au lieu d'espaces
Groupe2 (largeur mini) n (n'importe quel nombre) au moins n caractères * la largeur est lue dans un argument entier passé avant le nombre à imprimer
Groupe3 ("précision") .n au moins n _chiffres_, complétés avec des 0 à gauche si besoin est. .* la précision est lue dans un argument entier passé avant le nombre à imprimer . supprime l'affichage de la valeur 0
Groupe4 (type de l'argument; seuls les deux premiers sont supportés partout): h unsigned short l unsigned long hh unsigned char ll unsigned long long j size_t I64 unsigned __int64 (chez Microfou *uniquement*)
%08x est l'équivalent de %.8x (et est normalement le signal que le code en question va avoir des problèmes si les int font moins de 32 bits).
J'ai trouvé des "%08.8x" (probablement pour être compatible avec d'anciennes incantations), des "0x%08.8x" et même "0x0%08.8x". Sans y voir bien l'intérêt, sauf celui de compliqué. En gros, quand tu vois "%0nX" ou "%n.nX", cela veut dire que cela sera de largeur fixe avec tout plein de zéros; ce qui est généralement recherché.
Antoine
En news:424aa235$0$18943$636a15ce@news.free.fr, Francois va escriure:
Quel est le masque à utiliser pour printer une chaine en hexa dans
un fichier ?
% [les drapeaux] x
% [les drapeaux] X
Le premier utilise des minuscules, l'autre des capitales.
Où trouver une référence complète de ce que veut dire %08X , %02X
Tout plein d'endroits.
Pour ce que tu veux faire:
Groupe1:
- justifie à gauche
# force 0x/0X à gauche
0 justifie avec des zéros à gauche au lieu d'espaces
Groupe2 (largeur mini)
n (n'importe quel nombre) au moins n caractères
* la largeur est lue dans un argument entier passé avant le nombre à
imprimer
Groupe3 ("précision")
.n au moins n _chiffres_, complétés avec des
0 à gauche si besoin est.
.* la précision est lue dans un argument entier passé avant le nombre à
imprimer
. supprime l'affichage de la valeur 0
Groupe4 (type de l'argument; seuls les deux premiers sont supportés
partout):
h unsigned short
l unsigned long
hh unsigned char
ll unsigned long long
j size_t
I64 unsigned __int64 (chez Microfou *uniquement*)
%08x est l'équivalent de %.8x (et est normalement le signal que le code en
question va avoir des problèmes si les int font moins de 32 bits).
J'ai trouvé des "%08.8x" (probablement pour être compatible avec d'anciennes
incantations), des "0x%08.8x" et même "0x0%08.8x". Sans y voir bien
l'intérêt, sauf celui de compliqué. En gros, quand tu vois "%0nX" ou
"%n.nX", cela veut dire que cela sera de largeur fixe avec tout plein de
zéros; ce qui est généralement recherché.
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ?
% [les drapeaux] x % [les drapeaux] X
Le premier utilise des minuscules, l'autre des capitales.
Où trouver une référence complète de ce que veut dire %08X , %02X
Tout plein d'endroits. Pour ce que tu veux faire:
Groupe1: - justifie à gauche # force 0x/0X à gauche 0 justifie avec des zéros à gauche au lieu d'espaces
Groupe2 (largeur mini) n (n'importe quel nombre) au moins n caractères * la largeur est lue dans un argument entier passé avant le nombre à imprimer
Groupe3 ("précision") .n au moins n _chiffres_, complétés avec des 0 à gauche si besoin est. .* la précision est lue dans un argument entier passé avant le nombre à imprimer . supprime l'affichage de la valeur 0
Groupe4 (type de l'argument; seuls les deux premiers sont supportés partout): h unsigned short l unsigned long hh unsigned char ll unsigned long long j size_t I64 unsigned __int64 (chez Microfou *uniquement*)
%08x est l'équivalent de %.8x (et est normalement le signal que le code en question va avoir des problèmes si les int font moins de 32 bits).
J'ai trouvé des "%08.8x" (probablement pour être compatible avec d'anciennes incantations), des "0x%08.8x" et même "0x0%08.8x". Sans y voir bien l'intérêt, sauf celui de compliqué. En gros, quand tu vois "%0nX" ou "%n.nX", cela veut dire que cela sera de largeur fixe avec tout plein de zéros; ce qui est généralement recherché.
Antoine
Antoine Leca
En news:d2e97i$9j8$, Marc Boyer va escriure:
In article <424aa235$0$18943$, Francois wrote:
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ?
Je ne pense pas qu'il en existe.
Effectivement, je me suis emporté, je n'avais pas tout bien lu.
Antoine
En news:d2e97i$9j8$1@news.cict.fr, Marc Boyer va escriure:
In article <424aa235$0$18943$636a15ce@news.free.fr>, Francois wrote:
Quel est le masque à utiliser pour printer une chaine en hexa dans
un fichier ?
Je ne pense pas qu'il en existe.
Effectivement, je me suis emporté, je n'avais pas tout bien lu.
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ?
Je ne pense pas qu'il en existe.
Effectivement, je me suis emporté, je n'avais pas tout bien lu.
Antoine
Pierre Maurette
Salut,
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ? Votre question est un peu imprécise. "printer", c'est un néologisme à
base de printf() ou c'est pour imprimer sur l'imprimante? Dans le second cas, il me semble que c'est souvent galère sous un OS moderne. Essayez de changer les printf(blabla) soit en fprintf(stdprn, blabla), soit en fprintf(nom_imprimante, blabla), avec: FILE* nom_imprimante = fopen("LPT1", "w"); Si ça ne marche pas, essayez de remplacer LPT1 par LPT2, ou PRN, ou un truc dans le genre de USBxx, je ne me souviens plus exactement. Vous dite "dans un fichier". Là aussi, une des solutions est la même que la précédente: FILE* MonFichier = fopen("nomfichier", "wt"); fprintf(MonFichier, blabla);
Mais j'imagine que le problème est dans le "blabla", c'est à dire dans la chaine de format. Une chaîne (de caratères, je suppose) est une suite de char. A ma connaissance, vous ne pouvez convertir en texte hexa que des entiers.
Vous pouvez vous faire un petit truc pour afficher de la mémoire, c'est toujours sympa quand on est curieux:
Nota: ptr n'est pas indispensable, on peut caster le void*. Le cast du malloc() est mal vu. La zone pointée par tab n'est pas initialisée.
Où trouver une référence complète de ce que veut dire %08X , %02X etc... ? J'ai utilisé pas mal de sources, dont la norme (un PDF trouvé par hasard
sur la toile, pas vraiment légal). Actuellement, je sui branché sur ... Visual Studio 2005. C'est tout à fitexploitble pour du C et du C++ standard. En lignez ici: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/vclrfMThroughR.asp http://minilien.com/?dTbEND9hT3 (cliquez sur printf à gauche, puis sur "Format specifications" dans le texte, et naviguez. -- Pierre
Salut,
Quel est le masque à utiliser pour printer une chaine en hexa dans un
fichier ?
Votre question est un peu imprécise. "printer", c'est un néologisme à
base de printf() ou c'est pour imprimer sur l'imprimante?
Dans le second cas, il me semble que c'est souvent galère sous un OS
moderne. Essayez de changer les printf(blabla) soit en fprintf(stdprn,
blabla), soit en fprintf(nom_imprimante, blabla), avec:
FILE* nom_imprimante = fopen("LPT1", "w");
Si ça ne marche pas, essayez de remplacer LPT1 par LPT2, ou PRN, ou un
truc dans le genre de USBxx, je ne me souviens plus exactement.
Vous dite "dans un fichier". Là aussi, une des solutions est la même que
la précédente:
FILE* MonFichier = fopen("nomfichier", "wt");
fprintf(MonFichier, blabla);
Mais j'imagine que le problème est dans le "blabla", c'est à dire dans
la chaine de format. Une chaîne (de caratères, je suppose) est une suite
de char. A ma connaissance, vous ne pouvez convertir en texte hexa que
des entiers.
Vous pouvez vous faire un petit truc pour afficher de la mémoire, c'est
toujours sympa quand on est curieux:
Nota: ptr n'est pas indispensable, on peut caster le void*. Le cast du
malloc() est mal vu. La zone pointée par tab n'est pas initialisée.
Où trouver une référence complète de ce que veut dire %08X , %02X etc... ?
J'ai utilisé pas mal de sources, dont la norme (un PDF trouvé par hasard
sur la toile, pas vraiment légal). Actuellement, je sui branché sur ...
Visual Studio 2005. C'est tout à fitexploitble pour du C et du C++
standard. En lignez ici:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/vclrfMThroughR.asp
http://minilien.com/?dTbEND9hT3
(cliquez sur printf à gauche, puis sur "Format specifications" dans le
texte, et naviguez.
--
Pierre
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ? Votre question est un peu imprécise. "printer", c'est un néologisme à
base de printf() ou c'est pour imprimer sur l'imprimante? Dans le second cas, il me semble que c'est souvent galère sous un OS moderne. Essayez de changer les printf(blabla) soit en fprintf(stdprn, blabla), soit en fprintf(nom_imprimante, blabla), avec: FILE* nom_imprimante = fopen("LPT1", "w"); Si ça ne marche pas, essayez de remplacer LPT1 par LPT2, ou PRN, ou un truc dans le genre de USBxx, je ne me souviens plus exactement. Vous dite "dans un fichier". Là aussi, une des solutions est la même que la précédente: FILE* MonFichier = fopen("nomfichier", "wt"); fprintf(MonFichier, blabla);
Mais j'imagine que le problème est dans le "blabla", c'est à dire dans la chaine de format. Une chaîne (de caratères, je suppose) est une suite de char. A ma connaissance, vous ne pouvez convertir en texte hexa que des entiers.
Vous pouvez vous faire un petit truc pour afficher de la mémoire, c'est toujours sympa quand on est curieux:
Nota: ptr n'est pas indispensable, on peut caster le void*. Le cast du malloc() est mal vu. La zone pointée par tab n'est pas initialisée.
Où trouver une référence complète de ce que veut dire %08X , %02X etc... ? J'ai utilisé pas mal de sources, dont la norme (un PDF trouvé par hasard
sur la toile, pas vraiment légal). Actuellement, je sui branché sur ... Visual Studio 2005. C'est tout à fitexploitble pour du C et du C++ standard. En lignez ici: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/vclrfMThroughR.asp http://minilien.com/?dTbEND9hT3 (cliquez sur printf à gauche, puis sur "Format specifications" dans le texte, et naviguez. -- Pierre
Harpo
Pierre Maurette wrote:
Salut,
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ? Votre question est un peu imprécise. "printer", c'est un néologisme à
base de printf() ou c'est pour imprimer sur l'imprimante?
Ne soyez pas trop tatillon, je suis sûr qu'il a voulu dire "displayer".
-- Patrick http://patrick.davalan.free.fr/
Pierre Maurette wrote:
Salut,
Quel est le masque à utiliser pour printer une chaine en hexa dans un
fichier ?
Votre question est un peu imprécise. "printer", c'est un néologisme à
base de printf() ou c'est pour imprimer sur l'imprimante?
Ne soyez pas trop tatillon, je suis sûr qu'il a voulu dire "displayer".
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ?
Votre question est un peu imprécise. "printer", c'est un néologisme à base de printf() ou c'est pour imprimer sur l'imprimante?
Ne soyez pas trop tatillon, je suis sûr qu'il a voulu dire "displayer". Au Québec, je suppose qu'on doit écrire "écranner", "tubecathodiquer"
étant admis pour déraisons hystériques. -- Pierre
James Kanze
Marc Boyer wrote:
In article <424aa235$0$18943$, Francois wrote:
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ?
Je ne pense pas qu'il en existe. Ce que je sais faire, c'est écrire des entiers en hexa l'un aprèe l'autre.
Où trouver une référence complète de ce que veut dire %08X , %02X etc... ?
Dans une documentation C ? Les pages de man (Unix) % man -s3C printf % man -a printf
Ce qui ne donne pas forcement la documentation du printf de C. (Au moins sur mon Unix, printf accepte des spécifications de formattage du genre "%2$s" ; ce n'est pas du standard C.)
Un bouquin de C J'ai longtemps utilisé le célèbre K&R Mais actuellement, c'est ``C: a reference manual'', Samuel P. Harbision et Guy L. Steele
Pour la bibliothèque aussi ?
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Marc Boyer wrote:
In article <424aa235$0$18943$636a15ce@news.free.fr>, Francois wrote:
Quel est le masque à utiliser pour printer une chaine en hexa
dans un fichier ?
Je ne pense pas qu'il en existe. Ce que je sais faire, c'est
écrire des entiers en hexa l'un aprèe l'autre.
Où trouver une référence complète de ce que veut dire %08X ,
%02X etc... ?
Dans une documentation C ?
Les pages de man (Unix)
% man -s3C printf
% man -a printf
Ce qui ne donne pas forcement la documentation du printf de C.
(Au moins sur mon Unix, printf accepte des spécifications de
formattage du genre "%2$s" ; ce n'est pas du standard C.)
Un bouquin de C
J'ai longtemps utilisé le célèbre K&R
Mais actuellement, c'est ``C: a reference manual'', Samuel
P. Harbision et Guy L. Steele
Pour la bibliothèque aussi ?
--
James Kanze mailto: james.kanze@free.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ?
Je ne pense pas qu'il en existe. Ce que je sais faire, c'est écrire des entiers en hexa l'un aprèe l'autre.
Où trouver une référence complète de ce que veut dire %08X , %02X etc... ?
Dans une documentation C ? Les pages de man (Unix) % man -s3C printf % man -a printf
Ce qui ne donne pas forcement la documentation du printf de C. (Au moins sur mon Unix, printf accepte des spécifications de formattage du genre "%2$s" ; ce n'est pas du standard C.)
Un bouquin de C J'ai longtemps utilisé le célèbre K&R Mais actuellement, c'est ``C: a reference manual'', Samuel P. Harbision et Guy L. Steele
Pour la bibliothèque aussi ?
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Emmanuel Delahaye
Francois wrote on 30/03/05 :
Salut,
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier ?
Où trouver une référence complète de ce que veut dire %08X , %02X etc... ?
Merci d'avance.
Le Kernighan & Ritchie explique ça très bien. Sinon n'importe quelle bonne référence sir le C comme
The C-library: http://www.dinkumware.com/refxc.html
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"Mal nommer les choses c'est ajouter du malheur au monde." -- Albert Camus.
Francois wrote on 30/03/05 :
Salut,
Quel est le masque à utiliser pour printer une chaine en hexa dans un fichier
?
Où trouver une référence complète de ce que veut dire %08X , %02X etc... ?
Merci d'avance.
Le Kernighan & Ritchie explique ça très bien. Sinon n'importe quelle
bonne référence sir le C comme
The C-library: http://www.dinkumware.com/refxc.html
--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html
"Mal nommer les choses c'est ajouter du malheur au
monde." -- Albert Camus.