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
Version imprimable
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 ?!!Citation:
Envoyé par gl
Salut
Alors essaye "%lu" (normalement long non signé) ou "%li" (normalement long signé) :wink: !
Imposs.. ca marche pas j'ai vraiment presque tout essayé, je me demande si le compilateur l'accepte meme!Citation:
Envoyé par Elijha
Voici LARGE_INTEGER
Code:
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:
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.Citation:
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 .Citation:
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)Citation:
Envoyé par D[r
Ca marche aussi bien.
Je suis sur la meme version que toi. Essaye plutot le ll c'est plus sur.Citation:
Envoyé par KORTA
Il ne veut rien entendre! Le plus étonnant c'est que pour cout ca marche!!Citation:
Envoyé par nyal
D'autant que ton code a toi n'est pas compilable meme avec ll en remplacement de j
Citation:
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:
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:
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 ?