Affectation de variable

Signaler
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007
-
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
-
Bonsoir, voilà enfaite j'aimerai savoir si il est possible d'affecter les chiffres contenus dans une variable char vers une variable int ?

19 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
atoi

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Si tu parle d'un char, pas d'une chaine de caractère, tu peut entrer dans un int sa valeur sans problème comme ceci par exemple:

char c = 5;
int i = (int)c;

Si il est stocké sous forme de caractère, une simple soustraction fait l'affaire comme par exemple:

char c = '5';
int i = (int)(c-48);

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007

euh pk a la place de m'affecter le chiffre présent dans le char il m'affect 2243232 ?
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
C'est un char ou un char* ?

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007

char variable[1000] ;
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Ah c'est pas un char ça c'est un tableau. Rien de plus facile:

char c[1000] = {"1234"}; //Par exemple
int i = 0;
i = atoi(c);

Si ça fait toujours la même erreure, c'est peut-être que ton chiffre est trop gros pour un int.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

pourquoi tu fais 2 fois le meme post ?
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
avec strtod c'est meme mieux, l'utilisation de atoi est décoseillée.
Messages postés
90
Date d'inscription
lundi 20 février 2006
Statut
Membre
Dernière intervention
6 mars 2007

atoi est utilisé par tous les programmes actuel. Je vois pas pourquoi il serait déconseillé....
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
atoi ne permet pas detecter une erreur de conversion, les bons
programmes utilisent les fonctions strto* pour les conversions de
nombres en chaine, au lieu des fonctions ato*
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
les bons progs controlent la saisie dans l'edit où on entre le nombre.

ciao...
BruNews, MVP VC++
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
SAKingdom a dit:
char c[1000] = {"1234"}; //Par exemple

bouh c'est nul!!
Déja ya un problème, {"1234"} a deux dimensions, pas c. Et puis c'est dommage d'initialialiser 1000 octets comme ca
char c[1000];
strcpy(c, "1234");

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
BruNews > Il faut rester le plus abstrait possible, les fonctions de
conversion de la libc ne sont pas reservées aux données provenant d'une
source "sure", il faut prévoir le cas ou la chaine entrante contient
une représentation invalide d'un nombre car bien souvent ca ne peut pas
se faire en amont.
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
vecchio>>Hein??? 2 dimentions t'es sûr? Pourtant ça fonctionne bien.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
Oui les accolades sont de trop car "1234" est deja un sucre syntaxique pour {'1','2','3','4','\0'}
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
const char* c[] = {"1234"};

char c[] = "1234";

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Ah ok les accolades . Oups.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Le prob c'est que l'abstraction coute cher en performance, il convient donc de savoir si on écrit une lib générique ou un prog correct et c'est plus souvent le second cas pour lequel on est payé.

ciao...
BruNews, MVP VC++
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
C'est un choix, mais dans le domaine du calcul scientifique ca peux
couté cher de faire tourné un algorithme a partir de données entrantes
érronnées, mieux vaut détecter l'erreur et ne rien faire plutot que de
sortir un résultat invalide.