Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

G0dLiki3

Erro em converte CStringo to const char

Recommended Posts

boa noite pessoal...

 

eu estou a tentar fazer uma peqena aplicacao em c++ atraves do microsoft visual studio 2008, e o programa consiste simplesmente em calcular o imc.

so qe me da um erro (error C2664: 'atoi' : cannot convert parameter 1 from 'CString' to 'const char *')???

ja tentei de tudo e nao consigo chegar a uma conclusao, ha alguem qe me possa ajudar??

 

vou colocar aqi a aplicacao para perceberem melhor aonde qero chegar

 

void CImcDlg::OnBnClickedButton1()
{
	// TODO: Add your control notification handler code here
	CString CS1, CS2, CSresult;
	char str[20];
	int p, a, result;
	m_peso.GetWindowTextW(CS1);
	m_altura.GetWindowTextW(CS2);
	p = atoi(CS1);   <----Erro
	a = atoi(CS2);   <----Erro
	result = p/(a*a);
	_itoa(result, str, 10);   <----Warnig 
	CSresult = str;
	m_resultado.SetWindowTextW(CSresult);
}

cmps

G0dLik3

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente primeiro converter o CString para *char, veja se com o sprintf você consegue ai sim use o atoi.

pq veja o parametro q o atoi espera é um "int atoi ( const char * str );"

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

para o sprintf minha ideia é:

char palavra[255];
sprintf(palavra,"%s", CS1);

Compartilhar este post


Link para o post
Compartilhar em outros sites

o programa corre mas nao apresenta os valos qe recebe, e diz qe a variaveis a e p nao estao declaradas???

tou aqi tou a mudar de projecto xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho q ele reclama de naum estar inicializadas.

creio eu neh..

faça assim:

int p, a, result;
p = a = 0;

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja parece estar a andar :rolleyes:

so qe agora se comentar esta intrucao:

//p = atoi(CS1);

//a = atoi(CS2);

o resultado da zero pois ele soma as 2 variaveis e como sao inicializadas a 0 da 0.

se nao comentar da o mesmo erro do prencipio, eu atraves de

m_peso.GetWindowTextW(CS1);

m_altura.GetWindowTextW(CS2); tou a ir buscar o valor introduzido nas caixas e colocalos no CS1 e CS2, depois qero passar esses mesmo para a variaveis a e p para poder fazer a operacao e é ai qe estou a falhar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom qnt ao resultado dar zero me surpreendo a naum ver q gera um erro por divisao por 0 naum existe..

a principio estou tentando passar CS1 E CS2 para *char usando o sprintf. tente passar com o sinal de '=' para ver c da erro ow algo assim..

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem como você fazer o casting na hora q esta fazendo a leitura das variaveis?

ow seja ler elas direto como inteira?

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo ja resolvi a minha qestao, mais logo colocarei aqi, agora tenho outra duvida, voce sabe de alguma instrucao de converter cstring para float?

sei converter float para cstring atraves do atof.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.