Título: Trabajar con string o wstring Publicado por: SheKeL_C$ en 7 Abril 2016, 14:29 pm Estuve en un principio mirando algo de c, y siempre use el tipo char, ahora veo que en c++ tambien existe (sino exite en c) el tipo string.
Tiempo despues veo que tambien hay wchar_t y wstring. Mi pregunta es clara, si mi objetivo es que mi software trabaje en cualquier Windows, ¿debo de usar string y char, o wstring y wchar_t? Creo que wstring y wchar_t son para los caracteres 'wide' los que ocupan 2 bytes, por ejemplo los caracteres chinos o el lenguaje cirilico. Si mi software viene con el tipico "hola, mundo", ¿con que tipo debo de trabajar? ¿Y si estoy esperando alguna entrada de texto por parte del usuario? Título: Re: Trabajar con string o wstring Publicado por: ivancea96 en 7 Abril 2016, 14:36 pm Si va a ser un programa de consola, en principio no te compliques y trabaja con la clase string, y con caracteres de 1 byte. No te darán problemas en principio, salvo que trabajes con determinadas funciones de WinAPI, por ejemplo. En ese caso, hasta podrías transformar fácilmente de wstring a string.
En definitiva, para programas de consola, string. En el momento en que necesites realmente trabajar con otras codificaciones, lo sabrás. Título: Re: Trabajar con string o wstring Publicado por: SheKeL_C$ en 7 Abril 2016, 15:52 pm Y si por ejemplo trabajase con las APIs que seria mejor trabajar con string o con char?
En el momento en que necesites realmente trabajar con otras codificaciones, lo sabrás. No me ha quedado claro. Podrias darme algun ejemplo? Título: Re: Trabajar con string o wstring Publicado por: ivancea96 en 7 Abril 2016, 15:59 pm Si quisieras en algún momento trabajar con char, o copias a un array, o consigues un array constant con string::c_str().
Por ejemplo las funciones FindFirstFile y FindNextFile rellenan una estructura WIN32_FIND_DATA, donde uno de sus miembros, "cFileName", es TCHAR. TCHAR es wchar_t si se trabaja con unicode (https://msdn.microsoft.com/es-es/library/windows/desktop/aa365740(v=vs.85).aspx (https://msdn.microsoft.com/es-es/library/windows/desktop/aa365740(v=vs.85).aspx)) |