[C++] Problema con vocales con tilde y caracteres especiales.

Iniciado por NOIS, 20 Noviembre 2014, 09:29 AM

0 Miembros y 1 Visitante están viendo este tema.

NOIS

Hola, estoy realizando un programa de cifrado y desencriptación, explico.

El nivel 1 de dicho programa solo modifica los caracteres 1 a 1 con el mismo algoritmo, y de este modo no tengo ningún error a la hora de cifrar o descifrar caracteres especiales.

En el nivel 2, en una de las fases convierto los caracteres a cadenas. Si los caracteres son convencionales funciona perfectamente, pero si son vocales con tilde o la letra 'ñ' el programa se detiene inesperadamente.

¿Como podría solucionar esto?

Gracias de antemano.
NOIS dev7

ivancea96

Poco se puede hacer si no das más datos

NOIS

No creo que hagan falta más datos, lo que necesito es habilitar o hacer compatible de algún modo el alfabeto español dentro del programa para que no me de error.
NOIS dev7

ivancea96

Sin saber ningún dato del error ni de la linea que lo genera, pues. Tampoco sé que es convertir un caracters a cadena. (? 'a' -> "a" ?)

_Enko

#4
Pues creo que la solución es utilizar codificación UNICODE. Si mal no recuerdo la librería era wchar.h

http://www.cplusplus.com/reference/cwchar/

Pero tambien vas a tener que guardar el codigo fuente como UNICODE y tambien agregar parametros al compilador.

MeCraniDOS

#5
Cita de: NOIS en 20 Noviembre 2014, 10:39 AM
No creo que hagan falta más datos

Que tal el código para poder ver por donde te puede fallar?  :rolleyes:

Saludos





Utiliza la tabla Ascii, la ñ es el numero 164, y la Ñ el 165, busca las tildes etc, y reemplazalas por las letras sin tildes  :D
"La física es el sistema operativo del Universo"
     -- Steven R Garman

NOIS

#6
Cita de: _Enko en 20 Noviembre 2014, 16:47 PM
Pues creo que la solución es utilizar codificación UNICODE. Si mal no recuerdo la librería era wchar.h

http://www.cplusplus.com/reference/cwchar/

Pero tambien vas a tener que guardar el codigo fuente como UNICODE y tambien agregar parametros al compilador.

Gracias, le echaré un vistazo.
____________________________________________________________________
Cita de: ivancea96 en 20 Noviembre 2014, 15:09 PM
Sin saber ningún dato del error ni de la linea que lo genera, pues. Tampoco sé que es convertir un caracters a cadena. (? 'a' -> "a" ?)

Con convertir en una cadena me refiero a que yo he creado algo como esto:
Código (cpp) [Seleccionar]

using namespace std;
...
string conversion[256]={ "aaa","bbb","ccc","..."};

y si el valor del caracter registrado es 25 lo sustituye por el la cadena nº 25 de "conversion".
NOIS dev7

ivancea96

Puede que en consola se muestran mal las tildes y lo que sea. Pero nunca he tenido un error ni un fallo de ningún tipo por culpa de eso.

NOIS

Ya, por eso no entiendo que pueda manipular caracteres sin problemas pero no caracteres y cadenas cuando encuentra un caracter especial.
NOIS dev7

ivancea96

De verdad, insisto en que pongas el fragmento de código en el que da el error, el fragmento en el que declaras las variables implicadas. Una base para ver si es un error lógico de algún tipo.