voila j'ai à traiter de grandes chaines de mon code qu'y a-t-il au-dessus des double long ?
voila j'ai à traiter de grandes chaines de mon code qu'y a-t-il au-dessus des double long ?
Vu que les chaînes se stockent dans un tableau de caractères, l'idée de les mettre dans un double long ne semble pas judicieuse...Envoyé par mrtatou
Si tu veux parler de grands nombres, il n'y a rien de standard pour cela... Il faut utiliser une bibliothèque externe ou alors le faire à la main avec un tableau par exemple...
Jc
excusez moi je travail avec un tableau de chiffres positifs qui doivent contenir jusqu'à 10 nombres
que dois -je utiliser comme unité pour mes variables?
c'est une bonne idée mais j'ai essayé et ca ne fonctionne pas....
- Sont-ce des nombres réels ou entiers ?
- Quelle est la précision souhaitée ?
Dans ce cas, si ta platteforme le supporte, utilise un unsigned long long, en règle générale, la plage de valeur possible pour ce type est la suivante :
0 à 18 446 744 073 709 551 615
Pour de plus amples information consulte la FAQ :
http://c.developpez.com/faq/c/?page=...S_taille_types
C'est pas plutôt : "je travaille avec un tableau de nombres positifs qui doivent contenir jusqu'à 10 chiffres ?Envoyé par mrtatou
Marco85
merci
par contre comment transformer une chaine en usigned long long,
avec atoi et strtol ca ne fonctionne pas bien évidemment.
Tu veux sans doute direEnvoyé par mrtatou
<<excusez moi je travaille avec un tableau de nombres positifs qui doivent contenir jusqu'à 10 chiffres
que dois -je utiliser comme type pour mes variables?>>
Un peu plus de rigueur dans le vocabulaire permet de mieux définir ce dont on parle et d'éviter l'incompréhension.
10 chiffres, c'est pas méchant...
Et voilà.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #include <stdio.h> #include <limits.h> #ifdef WIN32 #define LL "I64" #else #define LL "ll" #endif int main(void) { unsigned long long x = 99999999999ull; if (x <= ULLONG_MAX) { printf ("x = %"LL"u OK\n", x); } else { printf ("KO\n"); } return 0; }
voila mon code mais ca passe pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <dirent.h> #include <ctype.h> #include <unistd.h> #include <time.h> #include <netinet/in.h> #include <sys/socket.h> #include <arpa/inet.h> int main() { //conversion chaine en nombre char buff[32]="4294967295"; int tab[32]; unsigned long long n; char *end; n=strtoul(buff,&end,15); printf("end:%lu",buff); }
Faudrait se relire, arréter de coder n'importe comment, lire les docs, lire les réponses...Envoyé par mrtatou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 #include <stdio.h> #include <stdlib.h> #ifdef WIN32 #define LL "I64" #else #define LL "ll" #endif int main() { //conversion chaine en nombre char buff[32] = "4294967295"; int tab[32]; unsigned long long n; char *end; n = strtoull(buff, &end, 10); if (*end == 0) { printf("%"LL"u\n", n); } else { puts("ERR"); } return 0; }
Au fait: je n'ai pas trouvé strtoull sur l'aide de Windows.
Si ça ne marche pas, j'ai trouvé _atoi64, mais j'ignore s'il y a mieux
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
C'est Posix tout de même, manEnvoyé par Médinoc
Normal. long long, C'est C99.Envoyé par Médinoc
De puis quand l'aide de windows t'es utile pour coder en C ? J'espère que tu fais lusion à la base MSDN parce que sinon j'ai du rater quelque chose ...Au fait: je n'ai pas trouvé strtoull sur l'aide de Windows.
Oui, je parlais de la MSDN Library.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager