Probleme de formatage

Signaler
Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007
-
Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007
-
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

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

eRoZion
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
%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)
Messages postés
110
Date d'inscription
mardi 10 octobre 2000
Statut
Membre
Dernière intervention
20 décembre 2005

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
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
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)
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
Il a raison.
Ici ton unsigned long long ne fait que 32 bits, d'où son incapacité à stoquer 1235467897854641.

eRoZion
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
c'est quand meme incroyable ca, c'est pas 100% c99
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
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 :(
Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007

merci les gars!!!

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

Psycho :shy)