2011-01-15 9 views
5

oggi, mentre stavo lavorando su un codice mio, mi sono imbattuto in un segnale acustico quando si stampa un buffer sullo schermo. Ecco il personaggio misterioso che produce il segnale acustico: '' Non so se si può vedere, ma il mio computer emette un segnale acustico quando si tenta di stampare in questo modo:Strano segnale acustico quando si utilizzava il cout

cout<<(char)7<<endl; 

altro punto di interesse è che il "bip" non proviene dal mio cicalino di bordo, ma dalla mia cuffia/altoparlante

Questo è solo il mio computer o c'è qualcosa di sbagliato nella funzione cout?

EDIT:

Ma allora perché la stampa di questo personaggio produrre il segnale acustico? vuol dire che potrei inviare altri personaggi simili attraverso la funzione cout per produrre effetti diversi?

+3

Sto aspettando la linea di perforazione ... Il codice ASCII 7 è il segnale acustico di sistema (Control-G). – tawman

+1

È probabile che in una configurazione della scheda audio sia presente un'impostazione "Segnali acustici del sistema tramite altoparlanti". Se la disattivi, dovresti sentire 0x7 nel modo in cui è stato concepito per essere ascoltato, come un'onda a dente di sega spiacevolmente alta proveniente dai diffusori più economici che il produttore di PC potrebbe trovare. – Seth

risposta

12

In ASCII il carattere 7 è il carattere "campana" che segnala al terminale che deve essere emesso un segnale acustico.

MODIFICA: per rispondere alla tua domanda di follow-up, è davvero solo per motivi storici. I vecchi terminali di teletype avevano bisogno di un modo per avvisare l'operatore di un messaggio in arrivo in modo da utilizzare una campana. Il personaggio della campana ha detto al terminale di suonare il campanello piuttosto che stampare un personaggio.

I moderni emulatori di terminale fanno essenzialmente la stessa cosa, anche se di solito hanno la possibilità di sostituire la campana udibile con una visuale.

+0

Sei stato il primo, quindi hai intenzione di accettare – Unknown

3

char 7 è il codice ASCII per BELL. Scrivendo questo personaggio sulla console, il computer emette un segnale acustico. È perfettamente normale

12

0x7 è il carattere ASCII che produce un suono "bip". È un personaggio non stampabile. Ecco un elenco completo dei caratteri ASCII e dei relativi codici: http://www.asciitable.com/

Modifica: il suono può essere utilizzato per un vero e proprio melange di cose. Tuttavia non è possibile produrre altri effetti inviando altri dati attraverso. Nella tabella nel link sopra qualsiasi cosa nella lista sotto 0x20 (32 decimale) è un carattere non stampabile. Possono avere effetti diversi a seconda di dove i dati vengono effettivamente stampati.

Fondamentalmente si può semplicemente scrivere un ciclo per produrre 0- (qualunque numero si desideri fermare) per sperimentare e vedere cosa si può ottenere.

+1

+1 per un vero e proprio melange. –

3

chat 7 è in realtà un carattere "beep" e non un carattere di schermo. Sebbene a volte la documentazione possa mostrare un personaggio, generalmente non è qualcosa che puoi rendere visivamente.