Utilisation de atoi()

Résolu
ims214 Messages postés 6 Date d'inscription mardi 26 octobre 2010 Statut Membre Dernière intervention 2 février 2012 - 27 janv. 2012 à 18:37
ims214 Messages postés 6 Date d'inscription mardi 26 octobre 2010 Statut Membre 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
A voir également:

2 réponses

ims214 Messages postés 6 Date d'inscription mardi 26 octobre 2010 Statut Membre Dernière intervention 2 février 2012
27 janv. 2012 à 21:11
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
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 janv. 2012 à 18:58
int = atoi(char*);

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

ciao...
BruNews, MVP VC++
-2
Rejoignez-nous