2011-01-15 12 views
5

今日、私のコードで作業していたときに、画面にバッファを印刷するときにビープ音が聞こえました。ここ はビープ音を作り出す神秘的な文字です:「」あなたはそれを見ることができれば は私は知らないが、私はこのようにそれを印刷しようとすると、私のコンピュータはビープ音を鳴らし:coutを使用するときに奇妙なビープ音が発生する

cout<<(char)7<<endl; 

関心のもう一つのポイントは、ということです「ビープ音」は私のボードブザーから発せられたものではなく、ヘッドホン/スピーカーからのものです

これは私のコンピュータなのでしょうか?

編集:

しかし、なぜこの文字を印刷するとビープ音が鳴りますか?それは、私が異なる効果を生み出すために、他のそのような文字をcout関数を通して送ることができるということですか?

+3

パンチラインを待っています... ASCIIコード7は、システムビープ音(Control-G)です。 – tawman

+1

サウンドカード構成のどこかに「スピーカーからシステムビープ音を鳴らす」設定がある可能性があります。これをオフにすると、PCメーカーが見つけることができるもっとも安いスピーカーからの不快な鋸歯状波が聞こえるように0x7の音が聞こえるはずです。 – Seth

答えて

12

文字では、文字7は、ビープ音が鳴るように端末に信号する「ベル」文字です。

編集:あなたのフォローアップの質問に答えるには、これは歴史的な理由からです。旧式のテレタイプ端末は、オペレータに着信メッセージを警告する方法を必要とし、ベルが使用された。ベル文字は、文字を印刷するのではなく、ベルを鳴らすよう端末に指示しました。

現代の端末エミュレータは、基本的に同じものですが、通常、可聴ベルを視覚的なものに置き換えるオプションがあります。

+0

あなたが最初だったので、真のメランジュのために – Unknown

3

char 7はBELLのASCIIコードです。この文字をコンソールに書き込むと、コンピュータからビープ音が鳴ります。それは完全に正常です。

12

0x7は、「ブリーク」音を生成するASCII文字です。それは印刷できない文字です。 ASCII文字とそのコードの完全な一覧は次のとおりです。http://www.asciitable.com/

編集:サウンドは真実のメランジに使用できます。しかし、実際には他のデータを送ることで他の効果を生み出すことはできません。上のリンクの表では、0x20(小数点以下32桁)のリストにあるものは印刷できない文字です。データが実際にどこに出力されているかによって、異なる効果が得られます。

基本的には、実験をして得られるものが何であるかを見るために、ループを書き込んで0(何を停止したいか)を書き出すことができます。

+1

+1を受け入れるようになるでしょう。 –

3

chat 7は実際には「ビープ音」文字であり、スクリーン文字ではありません。ドキュメントには文字が表示されることもありますが、一般的に視覚的にレンダリングできるものではありません。

関連する問題