2011-01-15 18 views
5

Heute, als ich an einem Code von mir arbeitete, stieß ich auf einen Piepton, als ich einen Puffer auf den Bildschirm drückte. Hier ist der geheimnisvollen Charakter, der den Ton erzeugt: ‚‘ Ich weiß nicht, ob Sie es sehen können, aber mein Computer piept, wenn ich versuche, es so zu drucken:Seltsamer Piepton bei der Verwendung von Cout

cout<<(char)7<<endl; 

Ein weiterer interessanter Punkt ist, dass der "Piepton" stammt nicht von meinem Onboard-Piepser, sondern von meinem Kopfhörer/Lautsprecher

Ist das nur mein Computer oder stimmt etwas nicht mit der Cout-Funktion?

EDIT:

Aber warum dann nicht den Druck dieses Zeichen erzeugt den Signalton? Bedeutet das, dass ich andere Charaktere über die Cout-Funktion senden könnte, um verschiedene Effekte zu erzeugen?

+3

Ich warte auf die Punch-Line ... ASCII-Code 7 ist der Systemton (Control-G). – tawman

+1

Wahrscheinlich haben Sie irgendwo in Ihrer Soundkartenkonfiguration eine Einstellung "Play System piept durch Lautsprecher". Wenn Sie das ausschalten, sollten Sie 0x7 so hören, wie es gehört werden sollte, da eine unangenehm laute Sägezahnwelle von dem billigsten Lautsprecher kommt, den Ihr PC-Hersteller finden könnte. – Seth

Antwort

12

Im ASCII-Format ist das Zeichen 7 das "Glocke" -Zeichen, das dem Terminal signalisiert, dass es piepen soll.

EDIT: Um Ihre Follow-up-Frage zu beantworten, ist es nur aus historischen Gründen. Die alten Teletype-Terminals benötigten eine Möglichkeit, den Operator auf eine eingehende Nachricht aufmerksam zu machen, so dass eine Klingel verwendet wurde. Das Klingelzeichen wies das Terminal an, die Glocke zu läuten anstatt einen Charakter zu drucken.

Moderne Terminalemulatoren machen im Wesentlichen dasselbe, obwohl sie normalerweise eine Option haben, die hörbare Glocke durch eine visuelle zu ersetzen.

+0

Du warst der erste, also wirst du annehmen, – Unknown

3

char 7 ist der ASCII-Code für BELL. Wenn Sie dieses Zeichen in die Konsole schreiben, gibt der Computer einen Signalton aus. Es ist völlig normal.

12

0x7 ist das ASCII-Zeichen, das einen "Piepton" erzeugt. Es ist ein nicht druckbares Zeichen. Hier ist eine vollständige Liste der ASCII-Zeichen und ihrer Codes:

Bearbeiten: Der Ton kann für eine wahre Melange von Dingen verwendet werden. Allerdings können Sie andere Effekte nicht wirklich erzeugen, indem Sie andere Daten senden. In der Tabelle in der obigen Verknüpfung ist alles in der Liste unter 0x20 (32 Dezimal) ein nicht druckbares Zeichen. Sie können unterschiedliche Auswirkungen haben, je nachdem, wo die Daten tatsächlich ausgegeben werden.

Im Grunde könnten Sie einfach eine Schleife schreiben, um 0- (was auch immer Nummer, an der Sie anhalten möchten) auszugeben, um zu experimentieren und zu sehen, was Sie bekommen können.

+1

+1 für echte Melange. –

3

chat 7 ist eigentlich ein "Piep" -Zeichen und kein Bildschirmzeichen. Obwohl manchmal Dokumentation ein Zeichen zeigt, ist es im Allgemeinen nicht etwas, das Sie visuell darstellen können.