Probleme de formatage

cs_psycho Messages postés 232 Date d'inscription samedi 11 mai 2002 Statut Membre Dernière intervention 27 octobre 2007 - 7 sept. 2004 à 17:34
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)

10 réponses

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
7 sept. 2004 à 17:44
oui printf("%ld",mon_long);
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
7 sept. 2004 à 17:45
ou %lld ?
0
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
7 sept. 2004 à 19:00
Pour un affichage decimal :
_Si l'entier est signé : ld ou li (exactement pareil, 'd'ecimal 'i'ntegrer)
_Sinon : lu

eRoZion
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
7 sept. 2004 à 20:54
%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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BeLZeL Messages postés 110 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 20 décembre 2005
8 sept. 2004 à 00:32
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
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
8 sept. 2004 à 03:15
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)
0
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
8 sept. 2004 à 09:13
Il a raison.
Ici ton unsigned long long ne fait que 32 bits, d'où son incapacité à stoquer 1235467897854641.

eRoZion
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
8 sept. 2004 à 09:27
c'est quand meme incroyable ca, c'est pas 100% c99
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
8 sept. 2004 à 12:35
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 :(
0
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
merci les gars!!!

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

Psycho :shy)
0
Rejoignez-nous