Bonjour a tous
j'ai besoin d'afficher un LARGE_INTEGER avec printf, quelqu'un connait la solution ou plutot le caractère de formatage adéquat ?
précision: gcc utilisé
A bientot
Bonjour a tous
j'ai besoin d'afficher un LARGE_INTEGER avec printf, quelqu'un connait la solution ou plutot le caractère de formatage adéquat ?
précision: gcc utilisé
A bientot
ce que tu appeles un LARGE_INTEGER, c'est un long ? Essaie %l
Non , on c'est un longlong ou un __int64 si tu preferes j'ai essayé %I64d ca marche pas ?!!Envoyé par gl
Salut
Alors essaye "%lu" (normalement long non signé) ou "%li" (normalement long signé)!
Imposs.. ca marche pas j'ai vraiment presque tout essayé, je me demande si le compilateur l'accepte meme!Envoyé par Elijha
Voici LARGE_INTEGER
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 typedef union union { struct { DWORD LowPart; LONG HighPart; }; LONGLONG QuadPart; } LARGE_INTEGER, *PLARGE_INTEGER;
Bonjour,
Je vais essayer de te venir en aide.
J'ai fait un petit test et le programme suivant marche (il faut gcc bien sur)
J'espere que ca marchera pour ton cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int main() { long long j; j = 9223372036854775805; printf("%i\n", sizeof(j)); printf("%ji\n", j); }
nyal, tu utilise j, qui semble etre le max de la machine (d'apres le man):
A mon avis, ll (2 petits L) seraient mieux.Envoyé par man 3 printf
Non ca n'y fait rien d'autant que c'est bizarre puisque meme si le forum n'est pas c++ avec l'utilisation de cout ca marche .Envoyé par nyal
Tu utilises quel version de gcc , moi c'est la 2,95 et est tu sur du format %ji??
Oui en effet. J'avsi testé le ll mais j'etais sous BSD. Il faut q suivi de i ou u (il oublie de le dire dans ton man)Envoyé par D[r
Ca marche aussi bien.
Je suis sur la meme version que toi. Essaye plutot le ll c'est plus sur.Envoyé par KORTA
Il ne veut rien entendre! Le plus étonnant c'est que pour cout ca marche!!Envoyé par nyal
D'autant que ton code a toi n'est pas compilable meme avec ll en remplacement de j
E:\home\test>g++ -g test.c
test.c: In function `int main(int, char **)':
test.c:57: integer constant out of range
test.c:57: warning: decimal integer constant is so large that it is unsigned
Un exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <iostream.h> #include <stdio.h> int main(int argc,char **argv) { long long i=111102121454545541ll; printf("PRINTF:%lli\n",i); cout<<"COUT:"<<i<<endl; return 0; }Petite chose a préciser je suis sur windows!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 E:\home\test>g++ test.c E:\home\test>a.exe PRINTF:1930898053 COUT:111102121454545541 E:\home\test>
Bizarre, tout de meme?
D'autant plus que compilé et executé sous linux le résultat fonctionne!
Personne a une version de stdio.h a me filer ?
Partager