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
- - Dernière réponse : 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
Afficher la suite 

2 réponses

Messages postés
6
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
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
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
-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