• ベストアンサー

ビープ音が鳴りません・・・

C言語での制御文字「\a」を使ってビープ音を出したいのですが出ません。何がおかしいのでしょうか? ・・・・・・・・・・・・・・・・・・・・・・・・・ #include <stdio.h> main () { printf("\a"); return 0; } ・・・・・・・・・・・・・・・・・・・・・・・・・ これをコンパイルして実行しても何も起きないのです。 昨日から独学でがんばっているのですが、早々に詰まってしまいました。^^; お分かりになられる方がいらっしゃれば教えてください。 おねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yama5140
  • ベストアンサー率54% (136/250)
回答No.5

年寄りの自作ディスクトップパソコンには、 ☆サウンドドライバで制御されるディスプレイ付属の「スピーカー」(●) ☆ビープ音だけを出す本体「スピーカー」(◆) の2つがあります。 ●からは、音量を最大にしても、聞こえませんでした。 ◆からは、ビープ音が出ました(当たり前か)。 というか、サウンドドライバに依る「スピーカー」を、printf() で制御できるのかなぁ?。 printf( "\a" ); printf( "%c", 0x07 ); ↑◆で、ともに鳴ります。 >何がおかしいのでしょうか? (サウンドドライバで制御される)「スピーカー」の音量を最小またはミュートして、耳を澄ましてみれば・・。 ☆もし質問者様がノートパソコンでしたら・・、年寄りの「アドバイス」は参考にはならないかと思います。

参考URL:
http://e-words.jp/p/r-ascii.html
ricore
質問者

お礼

今、別のパソコンで実行しましたところ音がでました。 また、リモートデスクトップから起動し実行しましたがそちらでも音を確認できました。 自作機でサウンドカードを入れていないのが原因だとおもわれました。 一度、 >>(サウンドドライバで制御される)「スピーカー」の音量を最小またはミュートにして、耳を澄ましてみれば・・。 これを試してみようとおもいます。 回答ありがとうございました。 これでほとんど解決です^^

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.7

ANo. 6 で書いたことの訂正です。 > Visual Basic 2005 Express Edition にてコンパイルしたもの(4 種類のバイナリ) Visual C++ 2005 Express Edition です。 VB で Console.Write(Chr(7)) でも試したので間違って書いてしまいました。 失礼致しました、申し訳ありません。

全文を見る
すると、全ての回答が全文表示されます。
  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.6

> OSはXP > CコンパイラはBorland C++ Compiler5.5 機種が書いてないのでなんとも言えませんがたぶん音が出ると思います。 もしかして「本体のスピーカとサウンドカードの……」とも思いましたが、それは ANo.5 の 御方の既に仰られているので。 念のためにパソコンの音量が下がっていないかも確認して、どうしても音が出ないのであれば、 お友達のパソコンで実行させてもらってみてはいかがでしょうか? ※ 下記は蛇足というか余談ですので軽く受け流しておいてください。 こちらで確認したもの。 (1) Linux GCC でコンパイルしたもの Linux のローカル端末 ○ Putty(ssh 接続ソフトウェア) + リモートの Linux ○ # これはローカルで ASCII コードを処理するので鳴ると予想されました。 VNC(リモートデスクトップのようなもの) + リモートの Linux + gnome-terminal ○ Xming(Windows のXserver) + gnome-terminal ○ # VNC と Xming で鳴るのは不思議ですが、何か仕掛けがあるのでしょう。 リモートのパソコンから音が出るのではなく、音が出るのは操作している側のパソコンの話です。 (2) Windows MinGW(GCC)、Cygwin(GCC)、Borland C++ Compiler 5.5 Free、 Visual Basic 2005 Express Edition にてコンパイルしたもの(4 種類のバイナリ) Windows 2000 のコマンド プロンプト ○ Windows XP のコマンド プロンプト ○ それぞれ音色は違ったのですが、上記の環境では音が鳴らないものはありませんでした。 \a の a は Alert の略なので、おそらく警告として音が出ればよいのでしょう。 ちなみに、これらも音が出ました。 # 当たり前なんですが。 /* 16進数表記 */ printf("\x07"); /* 8進数表記 */ printf("\007"); printf("\7"); /* 文字出力フォーマット */ printf("%c", 0x07);

ricore
質問者

お礼

>>もしかして「本体のスピーカとサウンドカードの……」とも思いましたが まさにコレでした。 別のパソコンや違うPCからのリモートデスクトップからでも音が確認できましたので・・・^^; サウンドカードは入れていないとやははり音がならないのでしょうか? 機種は自作機で予算の都合サウンドカードは入れてなかったもので・・・ 音はスピーカーからサウンドドライバ制御で出力していました。 やはり、今回のビープ音はサウンドドライバで制御できていなかったのでしょうか? 回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

ASCIIコードでベルは0x07です エスケープ文字では\aは警告文字で一般にASCIIコードの0x07であらわされます(\nが0x0aになるように) コマンドプロンプトでは\aは使えないのではないでしょうか

全文を見る
すると、全ての回答が全文表示されます。
  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.3

あ、間違えたか、\x7だったか?まあ、アスキーコードでいえば、ビープ音は7です。

全文を見る
すると、全ての回答が全文表示されます。
  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.2

>>制御文字「\a」を使ってビープ音 なにを参考にされたのでしょう?さしあたり、ビープ音なら、\aじゃあなく、\7ではないですか。

ricore
質問者

お礼

参考書には「¥a」でベル(ビープ音)が出ると書かれているのですが・・・ ソースがわかりません。教えていただけないでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.1

> 何がおかしいのでしょうか? コード自体は main() が int main() になってないぐらいしか…… # それは音が出る出ないには関係ないですから。 お使いの OS やコンパイル環境なども詳しくお書きになると何かわかるかも知れません。

ricore
質問者

お礼

遅れました。 OSはXP CコンパイラはBorland C++ Compiler5.5 を使っています。 制御符号も \a・・・ベルを鳴らす \b・・・1文字戻る \0・・・ヌル文字 などと参考書に書かれていましたが ビープ音(ベルの音)は鳴りません。 それぞれどのような効果があるか試して見たいのですがソースがわからずに困っています。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ビープ音について

    solaris10のビープ音について質問させて頂きます。 solaris10では、ビープ音を鳴らすのに、コンソール画面からプログラム(個人的に作成したプログラム)を起動させなければ、鳴らないようなのですが、コンソール画面なしでビープ音を鳴らすようにするにはどの様にすればよいか、ご教授御願い致します。 プログラムは下記のようになっております。 /* sample.c */ #include <curses.h> #include <unctrl.h> #include <unistd.h> #include <stdio.h> #include <time.h> void main() { initscr(); while(1) { beep(); sleep(1); } endwin(); } コンパイルは下記のようにしています。 cc -c sample.c cc -o sample sample.o -lcurses 上記にて作成したsampleを、コンソールのコマンドにて実行するとアラームは正常になります。 実行ファイルのsampleをアイコン作成にてアイコンを作成(端末に設定したくない)し、実行するとビープ音はならない。 以上、ご教授御願い致します。

  • printf("\a");のアラーム音

    言語:c #include <stdio.h> int main ( void ) { printf("\a"); return (0); } 上記のプログラムを実行すると、 アラーム音(?)が鳴ります。 音が出ている場所がスピーカからではなくて、 PCの本体から出ているようです。 なぜスピーカから鳴らないのでしょうか。 なぜPC本体から鳴っているのでしょうか。

  • なぜかビープ音が鳴ります(C言語)

    下記のプログラムはCHAR_SETの値に応じてASCII文字セットと拡張文字セットのどちらかを表示するようにコンパイルするものです。 #include <stdio.h> /* CHAR_SETを256または128のいずれかの値に定義する */ #define CHAR_SET 256 int main(void) { int i; #if CHAR_SET == 256 printf("すべてのASCII文字セットと拡張子を表示する\n"); #else printf("ASCII文字セットのみを表示する\n"); #endif for(i=0; i<CHAR_SET; i++) printf("%c", i); return 0; } 【質問】 このプログラムを実行するとビープ音が鳴るのですが、それはなぜでしょうか? いろいろ試して分かっていることは、CHAR_SETを512にすると2回鳴ることです。 ちなみに、「VisualC++.net Standard Version 2003」でコンパイルしました。 この問題に知識のある方、回答をお願い致します。

  • red hat 8.0 の PROGRAMING

    この度、red hat linux 8.0を入れてみたのですが、その環境での C言語の挙動がおかしいのですが、いままでと何か変わったのでしょうか? 例えば、 ---------------------- #include <stdio.h> int main() { printf("AAAA"); return 0; } ---------------------- このような簡単なものを、コンパイルして実行してみると何と驚いたことに、"AAAA" が画面上に出力されません。なぜ??

  • int とcharの使い方と違い

    教えてgooに投稿するのは初めてですがよろしくお願いします。 最近C言語を勉強し始めた初心者です。 ネットのサイトを見て独学でしています。 過去スレッドをさらっと見て聞きたいことが書いてなかったので投稿します。(同じスレッドがあったらすみませんOTL) #include<stdio.h> int main(void) { int str='a'; printf("str=%c\n",str); return0; } この上のプログラムでは str=a と出て、エラーが出ずにコンパイル出来ました。でも、 #include<stdio.h> int main(void) { int str[]="abc"; printf("str=%s\n",str); return0; } とするとエラーが出ます。 int とcharの使い方と違いについて詳しく教えてほしいです>< お願いします。

  • C言語で乱数がうまく効きません。下記のソースでコンパイルして実行すると

    C言語で乱数がうまく効きません。下記のソースでコンパイルして実行すると結果が130固定となってしまいます。 #include <stdio.h> #include <stdlib.h> int main(void){ int x; x = rand(); printf("%d",x); return 0; } 使っているコンパイラはBorland C++ 5.5.1です。何か間違いでもあるのでしょうか?よろしくお願いします。

  •  現在、私はC言語を学んでいます。

     現在、私はC言語を学んでいます。  プログラミングの初期の初期の問題なんですが、 「Hello World」という有名なプログラムがありますよね? それについての質問です。 #include<stdio.h> main() { printf("Hello World"); return 0; } も #include<stdio.h> main(void) { printf("Hello World"); return 0; } も #include<stdio.h> int main() { printf("Hello World"); } もちゃんと表示できます。 ここで質問です。 int main(void) int main() main() main(void) はどう違うんですか? あと、 return 0; はあっても無くてもいいようなんですが どういう意味があるんでしょうか?

  • return文について

    C言語を独学で勉強中です。 最初から分からないのがあったので、質問させていただきます。 #include <stdio.h> main() { printf("Hello World!!\n"); return(0); } return(0)を記入しなくてもエラーはでないのに、 なぜ必要なんですか? 参考書には何も書いてないので分かりません。 よろしくお願いします。

  • 一番最初でつまずいてます!!

    Borland C++Compilerをインストールしてプログラミングの勉強をし始めたばかりです。 #include<stdio.h> int main(void) { printf("はじめてのC言語プログラム"); return 0; } と入力してコンパイルすると 「インクルードファイル'stdio.h'をオープンできない」 というエラーがでました。 何度も見直したし、環境変数も合わせてるのになぜでしょうか!?

  • 結果がおかしい

    ソフトはvisual C++を使ってます。 C言語を本で勉強してて次のようなソースファイルを作ってコンパイルして、実行しました。この場合、結果は 105と表示されると思うのですが、0と表示されます。なぜなのか教えてください。 #include<stdio.h> int main() { printf("%d\n",100*1.05); return(0); } 結果 0