[C con Clase] caracteres especiales

Programante programante en gmail.com
Vie Sep 10 01:52:59 CEST 2010


 El 07/09/10 11:17, Pau Manent escribió:
> Hola
>
> En C y C++ solo puedes escribir los caracteres alfanumericos senzillos
> (a-z, A-Z, 0-9) y algunos simbolos (parentesis, :, -, ^) pero los
> otros no. Para poder escribirlos y representarlos debes escribirlos
> mediante codigo ASCII.
>
> Por ejemplo, para mostrar la palabra "presentación" haremos:
>     cout<<"presentaci"<<char(162)<<"n";
>
> char(numero) representa un símbolo en codigo ASCII, donde el numero va
> desde 0 a 255. Puedes buscar el símbolo en una tabla o con el
> siguiente codigo te mostrara toda la tabla en la pantalla:
>
> int main (){
>    int i;
>      for (i=0; i<256; i++){
>          cout<<i<<"-->"<<char(i)<<endl;
> system("pause");
> }
>
> Para hacer lo contrario (escribir en la pantalla y que el ordenador lo
> reconozca) debes programar una función que revise todos los caracteres
> uno por uno y les asigne un numero, tambien dependiendo del codigo ASCII.
>
> Espero que te haya servido de ayuda.

La culpa no es de C/C++. La culpa es de la consola de Windows que está
en CP850, mientras que el código C++ lo estarás escribiendo
(probablemente) en windows-1252. Al meter el 162 lo que haces es
realizar a mano la conversión, porque en CP850 el caracter 162 será la ó.
En Linux por ejemplo no hay problema, ya que puedes elegir la
codificación en que quieres que te tome los caracteres (normalmente en
utf-8) y escribiendo los mensajes de salida del programa en ella, pues
se puede ver cualquier código.


------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100910/ba19c8ef/attachment.html>


Más información sobre la lista de distribución Cconclase