Utilisation de atoi()

Résolu
Messages postés
6
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
2 février 2012
-
Messages postés
6
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
2 février 2012
-
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

2 réponses

Messages postés
6
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
2 février 2012

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
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
int = atoi(char*);

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

ciao...
BruNews, MVP VC++