Pregunta

que había encontrado una salida extraña cuando escribo las siguientes líneas en forma muy simple:

Código:

 printf("LOL??!\n");
 printf("LOL!!?\n");

Salida: text alt

Esto ocurre incluso el código se compila bajo las dos MBCS y Unicode.

La salida varía de la secuencia de "?" y "!" ...

¿Alguna idea?

¿Fue útil?

Solución

Puede intentar

printf( "What?\?!\n" );

En la programación informática, dígrafos y trigrafos son secuencias de dos y tres caracteres, respectivamente, que se interpretan como un personaje por el lenguaje de programación.

Algunos compiladores soportan una opción para activar el reconocimiento de trigrafos apagado, o trigrafos desactivar de forma predeterminada y requieren una opción para encenderlos. Algunos pueden emitir advertencias cuando se encuentran con trigrafos en los archivos de origen. Borland suministrado un programa separado, el preprocesador trigraph, para ser utilizado sólo cuando se desea el procesamiento trigraph.

Otros consejos

??! es un href="http://en.wikipedia.org/wiki/Digraphs_and_trigraphs#C" rel="nofollow"> trigraph que es reemplazado por |.

Como regla general, nunca se debe colocar dos caracteres de signo de interrogación en conjunto en cualquier parte de un archivo de origen.

Se llaman Trigraph secuencias

??! es la secuencia trigraph para Vertical Bar |.

El preprocesador de C / C ++ reconoce los trigrafos y reemplaza con su carácter equivalente.
Así que para cuando el código es visto por el compilador, los trigrafos ya se sustituyen.

# grepping in the source file:
$ grep printf a.c      
  printf("foo: ??!");

# grepping the preprocessor output:
$ gcc a.c -trigraphs -E | grep printf | grep foo
  printf("foo: |");

El ??! que se conoce como trigraph y es reemplazado por | en la producción. Marque esta

Es una secuencia especial de caracteres en una cadena constante que tiene un significado especial. Llamado trigraph se implementaron inicialmente porque no todos los terminales compatibles algunos caracteres.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top