Eslam Hamdy
Puedo convertir un Double
a un CString
usando _ecvt
result_str=_ecvt(int,15,&decimal,&sign);
Entonces, ¿existe un método como el anterior que convierte un int
a CString
?
dsgriffin
Aquí hay una manera:
CString str;
str.Format("%d", 5);
En tu caso, prueba _T("%d")
o L"%d"
en vez de "%d"
-
No se puede hacer mucho más rápido que eso. Es posible que desee envolver la cuerda con el
_T
macro para que coincida con elLPCTSTR
tipo de parámetro.– usuario1201210
26 de septiembre de 2012 a las 13:15
-
@Eslam ¿Cómo específicamente no funcionó? ¿No compiló? ¿Error de tiempo de ejecución? ¿Resultado incorrecto?
– usuario1201210
26 de septiembre de 2012 a las 13:17
-
@Daniel, surge el siguiente error C2664: ‘void ATL::CStringT
::Format(const wchar_t *,…)’ : no se puede convertir el parámetro 1 de ‘const char [3]’ a ‘const wchar_t *’ – Eslam Hamdy
26 de septiembre de 2012 a las 13:18
-
@Eslam Prueba
_T("%d")
oL"%d"
en vez de"%d"
.– usuario1201210
26 de septiembre de 2012 a las 13:19
-
¡No está funcionando para mí! Recibo el error ‘no se puede convertir el argumento 1 de ‘const char [3]’ a ‘const unsigned short *’. Extraño.
– Acercarse
18 de marzo de 2022 a las 10:45
Si quieres algo más similar a tu ejemplo, prueba _itot_s. En los compiladores de Microsoft, _itot_s apunta a _itoa_s o _itow_s según la configuración de Unicode:
CString str;
_itot_s( 15, str.GetBufferSetLength( 40 ), 40, 10 );
str.ReleaseBuffer();
debería ser un poco más rápido ya que no necesita analizar un formato de entrada.
template <typename Type>
CString ToCString (Type value)
{
return std::to_wstring (value).data ();
}
int main ()
{
const auto msg = ToCString (10);
std::wcout << msg.GetString () << std::endl;
return 0;
}
Nota la
cstring
la etiqueta es para el encabezado estándar de C++cstring
no por lo de las cadenas de Microsoft.– Sebastián Mach
26/09/2012 a las 13:35
Tal vez
itoa
es lo que buscas?– Anton Guryanov
26 de septiembre de 2012 a las 13:57