[C con Clase] ¿que significa la sentencia .....return *this

Steven Davidson srd4121 en njit.edu
Jue Sep 23 01:34:25 CEST 2010


Hola Wolverine,

On 9/22/2010 2:46 PM, wolverine_ch wrote:
>
> uhmmm haber yo ya he intentado poner con un printf esto:
>
> 1.printf("\0x2554");
> 2.printf("\0xC9");
> 3.printf("╔");
>
> :-|Pero en ninguno de los tres intentos me sale el icono que raro o
> asi no es la manera?...(uso turbo C++ 3.0)

Al hacer "\0xC9" estás diciendo que la cadena contiene inicialmente el 
carácter nulo, seguido de los caracteres 'x', 'C', y '9', terminando en 
un carácter nulo implícito. Es decir, ya has colocado el carácter nulo 
nada más empezar, por lo que 'printf()' no imprime nada. Lo mismo sucede 
con "\0x2554".

TC++ desconoce por completo Unicode, así que no te va a funcionar. 
Además, Unicode requiere más bytes por carácter y adicionalmente, 
'printf()' no puede imprimir caracteres "multibyte".

El último debería haber funcionado, si escribiste ese carácter dentro de 
MS-DOs o en la consola. Si no, entonces no te va a funcionar porque el 
editor y el compilador tratan los códigos de diferente manera. Por esta 
razón, se debería usar ASCII, porque es estándar.


La solución es usando el escape de secuencia '\x' para indicar un número 
en hexadecimal. Esto es,

printf( "\xC9" );

También puedes hacer esto:

printf( "%c", 0xC9 );


Espero que esto te aclare las dudas.

Steven





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