2011-01-15 9 views
5

hoy cuando estaba trabajando en algún código mío, me encontré con un pitido al imprimir un búfer en la pantalla. Aquí está el misterioso personaje que produce la señal sonora: '' No sé si se puede ver, pero mi equipo emite un sonido cuando se intenta imprimir de esta manera:Bip extraño al usar cout

cout<<(char)7<<endl; 

Otro punto de interés es que el 'pitido' no se origina en mi beeper a bordo, pero desde mi auricular/altavoz

¿Es esto solo mi computadora o hay algún problema con la función cout?

EDIT:

Pero entonces ¿por qué no imprimir este carácter producir el sonido de pitido? ¿Eso significa que podría enviar otros personajes a través de la función cout para producir diferentes efectos?

+3

Estoy esperando la línea perforada ... El código ASCII 7 es el pitido del sistema (Control-G). – tawman

+1

Es probable que tenga una configuración de "Sistema de reproducción suena a través de los altavoces" en la configuración de la tarjeta de sonido en alguna parte. Si lo apagas, deberías escuchar 0x7 de la manera en que debería ser escuchado, como una onda de diente de sierra incómodamente fuerte proveniente del altavoz más barato que el fabricante de tu PC podría encontrar. – Seth

Respuesta

12

En ASCII, el carácter 7 es el carácter de "campana" que indica al terminal que debe emitir un pitido.

EDITAR: Para responder a su pregunta de seguimiento, es realmente solo por razones históricas. Las viejas terminales de teletipo necesitaban una forma de alertar al operador de un mensaje entrante para que se usara una campana. El personaje de la campana le dijo a la terminal que sonara el timbre en lugar de imprimir un personaje.

Los emuladores de terminal modernos hacen prácticamente lo mismo, aunque generalmente tienen la opción de reemplazar la campana sonora por una visual.

+0

Fuiste el primero, así que conseguirás aceptar – Unknown

3

char 7 es el código ASCII para BELL. Al escribir este carácter en la consola, la computadora emite un pitido. Es perfectamente normal.

12

0x7 es el carácter ASCII que produce un sonido 'bleep'. Es un personaje no imprimible. Aquí hay una lista completa de los caracteres ASCII y sus códigos: http://www.asciitable.com/

Editar: El sonido se puede utilizar para una verdadera mezcla de cosas. Sin embargo, en realidad no puedes producir otros efectos enviando otros datos. En la tabla en el enlace anterior, cualquier cosa en la lista debajo de 0x20 (32 decimal) es un carácter no imprimible. Pueden tener diferentes efectos dependiendo de dónde se emiten los datos.

Básicamente, puede escribir un bucle en la salida 0- (el número al que desee detenerse) para experimentar y ver qué puede obtener.

+1

+1 por una verdadera melange. –

3

chat 7 es en realidad un carácter "bip" y no un personaje de pantalla. Aunque a veces la documentación puede mostrar un personaje, generalmente no es algo que puedas representar visualmente.