Probleme de formatage

Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007
- - Dernière réponse : cs_psycho
Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007
- 9 sept. 2004 à 10:21
bonjour!

voila, je suis en train de programmer un logiciel en C (pas C++), et j utilise des entiers de type long.
j utilise printf de stdio.h

probleme je ne connais pas le type du formatage a employer
i.e : si je veux utiliser un int, je fais printf("%d",mon_int);
mais pour un long je fais quoi? printf("%ld",mon_long); ????

merci d avance(je precise que je developpe sous linux(ca n a pas d importance, mais sait on jamais)

un bonbon a la menthe pour celui qui trouve! :shy)

Psycho :shy)
Afficher la suite 

10 réponses

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5
0
Merci
oui printf("%ld",mon_long);
Commenter la réponse de cs_djl
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5
0
Merci
ou %lld ?
Commenter la réponse de cs_djl
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
0
Merci
Pour un affichage decimal :
_Si l'entier est signé : ld ou li (exactement pareil, 'd'ecimal 'i'ntegrer)
_Sinon : lu

eRoZion
Commenter la réponse de cs_eRoZion
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
0
Merci
%ll c'est pour les entiers 64 bits (long long)
%llu c'est pour les entiers 64 bits aussi, mais non signés (unsigned long long)
Commenter la réponse de cs_Nebula
Messages postés
110
Date d'inscription
mardi 10 octobre 2000
Statut
Membre
Dernière intervention
20 décembre 2005
0
Merci
Sous DevCpp 4.9.9.0, j'ai tapé :

#include <stdio.h>

int main(int argc, char *argv[])
{
    unsigned long long test = 1235467897854641;
    printf ( "valeur : %llu\n", test);
    system("PAUSE");
    return 0;
}


Et j'obtiens l'affichage suivant :
valeur : 3375291057

J'ai tjrs obtenus des résultats bizarres avec DevCpp quand il s'agit de gérer de grands nombres.

BeLZeL
Commenter la réponse de BeLZeL
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
0
Merci
C'est normal, DevC++ dépend de msvcrt.dll qui ne gère officiellement pas les long long (en tout cas, c'est ce qui est indiqué dans la FAQ de MinGW)
Commenter la réponse de cs_Nebula
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
0
Merci
Il a raison.
Ici ton unsigned long long ne fait que 32 bits, d'où son incapacité à stoquer 1235467897854641.

eRoZion
Commenter la réponse de cs_eRoZion
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5
0
Merci
c'est quand meme incroyable ca, c'est pas 100% c99
Commenter la réponse de cs_djl
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
0
Merci
En effet, mais le compilateur n'y est pour rien là... Il y a des projets de réimplémentation de cette dll, mais ils sont +/- tous au point mort :(
Commenter la réponse de cs_Nebula
Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007
0
Merci
merci les gars!!!

oh, et puis allez, vous avez tous un bonbon a la menthe!! ;)
elle est pas belle la vie??

Psycho :shy)
Commenter la réponse de cs_psycho