Utilisation de atoi() [Résolu]

Messages postés
6
Date d'inscription
mardi 26 octobre 2010
Dernière intervention
2 février 2012
- - Dernière réponse : ims214
Messages postés
6
Date d'inscription
mardi 26 octobre 2010
Dernière intervention
2 février 2012
- 27 janv. 2012 à 21:11
Bonjour,
dans mon code j'ai déclaré:
WCHAR Xchar[10]

le programme rempli cette chaine à partir d'un index variable, par exemple:
Xchar[ index ] = '3';

je termine par un '\0'
Au final, il peut y avoir un nombre comme 2134 mais je veux le retrouver sus forme de int.
j'ai donc tenté ceci:
int Xint = atoi( (const char *)Xchar );

mais j'obtient Xint == 2. En fait je constate que seul le premier caractère est gardé, les autres (dans cet exemple 134 ) sont perdus.

Donc ma question: comment faire pour transformer la chaine Xchar[] en int

Environnement: VS2008, MFC, jeu de caractères UNICODE
Merci de votre aide
Afficher la suite 

Votre réponse

2 réponses

Messages postés
6
Date d'inscription
mardi 26 octobre 2010
Dernière intervention
2 février 2012
0
Merci
Finalement j'ai adopté:
	WCHAR TcharI[10] = { '2','1','3','4', '\0' };
int Tint = _wtoi( (const wchar_t *)TcharI );

WCHAR TcharD[10] = { '3','.','1','4','\0' };
double Tdbl = _wtof( (const wchar_t *)TcharD );


comme j'avais à travailler aussi sur des nombres à décimales, c'est réglé pour les deux.

Merci
Commenter la réponse de ims214
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
-2
Merci
int = atoi(char*);

Regarde MSDN et tu auras l'equivalent de atoi() pour WCHAR.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.