C言語での制御文字「\a」を使ってビープ音を出したいのですが出ません。何がおかしいのでしょうか?
・・・・・・・・・・・・・・・・・・・・・・・・・
#include <stdio.h>

main () {
printf("\a");
return 0;
}
・・・・・・・・・・・・・・・・・・・・・・・・・
これをコンパイルして実行しても何も起きないのです。
昨日から独学でがんばっているのですが、早々に詰まってしまいました。^^;
お分かりになられる方がいらっしゃれば教えてください。
おねがいします。

このQ&Aに関連する最新のQ&A

A 回答 (7件)

年寄りの自作ディスクトップパソコンには、



☆サウンドドライバで制御されるディスプレイ付属の「スピーカー」(●)
☆ビープ音だけを出す本体「スピーカー」(◆)

の2つがあります。

●からは、音量を最大にしても、聞こえませんでした。
◆からは、ビープ音が出ました(当たり前か)。

というか、サウンドドライバに依る「スピーカー」を、printf() で制御できるのかなぁ?。

printf( "\a" );
printf( "%c", 0x07 );
↑◆で、ともに鳴ります。

>何がおかしいのでしょうか?

(サウンドドライバで制御される)「スピーカー」の音量を最小またはミュートして、耳を澄ましてみれば・・。

☆もし質問者様がノートパソコンでしたら・・、年寄りの「アドバイス」は参考にはならないかと思います。

参考URL:http://e-words.jp/p/r-ascii.html
    • good
    • 0
この回答へのお礼

今、別のパソコンで実行しましたところ音がでました。
また、リモートデスクトップから起動し実行しましたがそちらでも音を確認できました。

自作機でサウンドカードを入れていないのが原因だとおもわれました。

一度、
>>(サウンドドライバで制御される)「スピーカー」の音量を最小またはミュートにして、耳を澄ましてみれば・・。
これを試してみようとおもいます。
回答ありがとうございました。
これでほとんど解決です^^

お礼日時:2008/04/01 09:02

ANo. 6 で書いたことの訂正です。



> Visual Basic 2005 Express Edition にてコンパイルしたもの(4 種類のバイナリ)

Visual C++ 2005 Express Edition です。
VB で Console.Write(Chr(7)) でも試したので間違って書いてしまいました。
失礼致しました、申し訳ありません。
    • good
    • 0

> 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);
    • good
    • 0
この回答へのお礼

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

回答ありがとうございました。

お礼日時:2008/04/01 09:08

ASCIIコードでベルは0x07です


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

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

    • good
    • 0

>>制御文字「\a」を使ってビープ音



なにを参考にされたのでしょう?さしあたり、ビープ音なら、\aじゃあなく、\7ではないですか。
    • good
    • 1
この回答へのお礼

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

お礼日時:2008/03/31 08:03

> 何がおかしいのでしょうか?



コード自体は main() が int main() になってないぐらいしか……
# それは音が出る出ないには関係ないですから。

お使いの OS やコンパイル環境なども詳しくお書きになると何かわかるかも知れません。
    • good
    • 0
この回答へのお礼

遅れました。
OSはXP
CコンパイラはBorland C++ Compiler5.5
を使っています。

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

お礼日時:2008/03/31 08:00

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

あなたにおすすめのQ&A

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q起動時ビープ音長音4回の意味は?

ノートPCが立ち上がらなくなってしまいました。
電源ONするとビープ音長音4回です。
画面は真っ黒なままです。
ビープ音の意味がわかれば修理の参考になるかと思います。

メーカー : シャープ
機種 : PC-CB1-C9S
OS : XP

よろしくお願いします。

Aベストアンサー

あった。ここまで3分。

>>http://www.google.co.jp/search?hl=ja&rlz=1T4GGLL_jaJP347JP347&num=50&newwindow=1&q=amd+bios+post+beep&btnG=%E6%A4%9C%E7%B4%A2&lr=

>>http://www.techsupportforum.com/hardware-support/motherboards-bios-cpu/146908-bios-beep-codes-error-codes.html

>>4 beeps Timer not operational, system board bad

ということで、AMIのP.O.S.T.ちゃんが叫んでいるもの
だとしたら打つ手はないでしょう。

そうは言っても直したいですよね。
セオリーとしては。

バッテリー、電源外して1時間以上放置
内部のシステム保持バッテリーも外してリセット。
その上で、新しいものに替える。
HDD、光学ドライブは結線を取り外す。
結線、ジャンパー等、緩みや外れがないか確認。
マザーボード上のチップやコンデンサ、
IC等に焼けや焦げが無いか確認。

以上のチェックの上で再起動。

あった。ここまで3分。

>>http://www.google.co.jp/search?hl=ja&rlz=1T4GGLL_jaJP347JP347&num=50&newwindow=1&q=amd+bios+post+beep&btnG=%E6%A4%9C%E7%B4%A2&lr=

>>http://www.techsupportforum.com/hardware-support/motherboards-bios-cpu/146908-bios-beep-codes-error-codes.html

>>4 beeps Timer not operational, system board bad

ということで、AMIのP.O.S.T.ちゃんが叫んでいるもの
だとしたら打つ手はないでしょう。

そうは言っても直したいですよね。
セオリーとしては。

バ...続きを読む

Qなぜかビープ音が鳴ります(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」でコンパイルしました。
この問題に知識のある方、回答をお願い致します。

下記のプログラムは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;
}

【質問】
このプログラム...続きを読む

Aベストアンサー

ベルコード(7) を出力するからです。

QPCが長音4回のビープ音が鳴って起動しません。

なんだかややこしくなったので整理して投稿します。

電源ボタンを押すと長音4回のビープ音が鳴り、それのみで起動しません。OSはおろかBIOSすら起動せず、そもそもモニターに信号が送られてきません。電源を入れたまま放置してもアクセスランプすら光りません。CPUファンは動いています。

試してみたことは今のところマザーボードのボタン電池交換
とメモリの挿し直し、ついでにCPUファンとヒートシンクの掃除だけですが、全く状況は変わりませんでした。

機種はGatewayのSX2870-H54Dです。キーボード、マウス、スピーカーは付属のものを使用しています。
BIOSの種類は今のところ分かりませんが、マザーボードはacer製のようです。
モニターはD-SUBで接続、サブモニタとしてテレビとHDMIで接続しています。

購入して2年ほどしかたっておらず、個人的に出費が厳しいので修理に出すことなく治ればそれが一番と思うのですが……
解決策お待ちしております。

Aベストアンサー

次のステップです

CPU+CPUファンの構成に、さらにメモリを1枚だけ刺して様子をみてください。
全てのスロットについて試してみてください。

メモリが複数枚ある場合には、それぞれのメモリについて上記を行ってください。

Qc:\Winodows\Sendotoとc:\Windows\デスクトップについて

設定によってはシステムをc:\Winodowsからc:\winにできるから
c:\Winodows\Sendotoとc:\Windows\デスクトップを
c:\win\Sendotoとc:\win\デスクトップにできます

同じように"Sendoto"と"デスクトップ"を例えば"Send"と"desktop"のように他の名前にできるのでしょうか?
できたとするとどのように命名されているかはどこを見れば良いのでしょうか?

Sendotoのファイル等はデスクトップ上の右クリックメニューの送るに表示され
デスクトップのファイル等は起動後に真っ先に現れる画面に表示されますね

よろしくお願いします

Aベストアンサー

SHGetSpecialFolderLocationを使ってください。

参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=235894

QMSI K8T Neo2 ビープ音2回で起動せず。

2年以上使い続けていた自作のPCが、電源を入れて直ぐにマザーボードからビープ音が「ピーッピーッ」と2回鳴り、1秒後位に同様のビープ音が繰り返されます。また、このビープ音が鳴りだしてから、画面には何も表示されなくなりました。中古で購入したのでマニュアルが無なく、申し訳ありませんが、誰か、このビープ音は何を示しているのかご存知の方は是非教えてください。

■マザーボード:MSI K8T Neo2
※ビープ音は耳を近づけて確認したので明らかにM/Bからの発信です。
■その他
ビデオカードを一旦抜いて刺し直しても同じ。
メモリーを抜いても同じ、別のメモリーを刺しても同じ。
BIOS電池を交換しても状況は変わりませんでした。

Aベストアンサー

通常、ビープ音は、1回鳴るのが正常のはずですが、2回はメモリのエラーか又はUSBに機器が
つながれている時にも鳴ります。例えばマウスなど。

PCの起動に関係のないものを全て外して起動してみてください。
もしくは新品のメモリを挿して起動してみるとか。

Q/a ビープ音 鳴らない

Microsoft Visual C++ 2008 Express Edition
windows vista hp

printf("\a");でのビープ音が鳴りません。
プログラム入力ミスの可能性もあるので念のため、公開されているソースプログラムで実行もしています。
デバイスマネージャーからbeepの設定がシステムになっていたので、自動にしてみても鳴りませんでした。
右下のwindowsのサウンド設定があり、windowsの終了に流す音楽等を決める項目がありそこがあやしいと思い大体試してみましたが鳴りませんでした。
環境によっては鳴らないみたいですが、マイナーな環境でもなさそうですし困っています。
改善できる可能性のあることがあればよろしくお願いします。

Aベストアンサー

>もしかしてマザーボードに接続しないと聞こえませんか?

この場合のBeepって、M/Bに接続されているスピーカから鳴らすモノ…かと思われますが……。
設定替えたりして回避(サウンドカードから鳴らす)できるかは…ちょっと不明ですね。
ある程度、環境に依存するものと思われます。

私のM/Bだと、ボリュームコントロールに「PC Beep」ってありますが……。
ミュートにしているとM/Bに接続されたスピーカから、
ミュートでないとサウンドカードから…鳴りましたね。
# ヘンなノイズが乗るので普段はミュートですが…。

Qビープ音用のスピーカーについて。

いつもお世話になっています。

当方現在マザーボードの動作確認をしているのですが、よく考えたらビープ音用のスピーカーの動作確認をしたことがないことに気付きました。
どの様にしたらビープ音用のスピーカーの動作確認をすることができますか?
現状としては、ビープ音用のスピーカーが付いていないマザーボードでちゃんと動作するものが無いので、テストする方法が分りません。
宜しくお願いします。

Aベストアンサー

ビープ音用のスピーカーは、ケース側についています。
パソコン用のパーツとして売っているのも、時々見かけますので、パソコンショップで聞いてみてはいかがでしょうか?

QPIC16F84AのデバイスでC言語を用いて音を出したい

PIC16F84AデバイスでCCS社のCコンパイラーを用いて音を出したいのですが、C言語の記述が分かりません。
音は、圧電ブザーで、Bポートの1つを使います。
Aポートの1つにスイッチを取り付け、スイッチが入ったら、音を鳴らしたいのですが、C言語で音階が記述できるんでしょうか?
簡単で良いので、C言語で、音を鳴らす記述を教えていただけないでしょうか?

Aベストアンサー

圧電ブザーは他励式だと仮定して書かせてもらいます。
音は、圧電ブザーのON/OFFで出すことが可能ですが、周波数(音階)は1秒間に何回ON/OFFを繰り返せるかで周波数が決まります。例えば、周波数800Hzは、1秒にONとOFFを1組として800組繰り返します。
ようは、ONとOFFの時間が可変長な関数を作ってやれば色々な周波数を出すことができます。

[参考関数]
void sound( int time, int count )
{
int loop;
// 残り時間だけループを繰り返す。
for( ; time>0 ; time-=(count*2) ) {
// 圧電ブザーをONにする。ON時間はcountで決まる。
for( loop=0 ; loop<count ; loop++ ) {
圧電ブサーのポートをONに。
}
// 圧電ブザーをOFFにする。OFF時間はcountで決まる。
for( loop=0 ; loop<count ; loop++ ) {
圧電ブサーのポートをOFFに。
}
}
}

[説明]
timeでなり続ける時間を指定します。
countでON/OFFの周期を指定します。大きな数字ほど周波数が低くなります。0は音が鳴りません。
C言語だとアセンブラほど高速にON/OFFを繰り返せないので、アセンブラに比べると出せる周波数は低めになるかと思います。いろんな値を入れて実際にどんな音するか試してみてください。

それとこのプログラムはCPUを占有しますので、音を鳴らしながら平行して処理をしたい場合は、タイマー割り込みでブザーをON/OFFする方式に変更しないと実用性が低いかもしれません。

圧電ブザーは他励式だと仮定して書かせてもらいます。
音は、圧電ブザーのON/OFFで出すことが可能ですが、周波数(音階)は1秒間に何回ON/OFFを繰り返せるかで周波数が決まります。例えば、周波数800Hzは、1秒にONとOFFを1組として800組繰り返します。
ようは、ONとOFFの時間が可変長な関数を作ってやれば色々な周波数を出すことができます。

[参考関数]
void sound( int time, int count )
{
int loop;
// 残り時間だけループを繰り返す。
for( ; time>0 ; time-=(count*2) ) {
// 圧電ブザーをO...続きを読む

Q富士通デスクトップ起動時ビープ音3回の意味は?

電源投入後、起動時にビープ音が3回なり起動せず。
ビープ音の意味は何でしょうか?
2,3年前のXP搭載の機種です。

Aベストアンサー

富士通のサイトにビープ音の解説がありますよ。

参考URL:http://www.fmworld.net/biz/fmv/support/fmvmanual/01simoki/3841fl/q_trouble14.html

Qc言語での\nや\tなどすべての記号に語源はあるのでしょうか?

c言語での\nや\tなどすべての記号に語源はあるのでしょうか?

Aベストアンサー

★まとめ
・ネットでは、なかなか略語(語源)まで見つかりませんね。
 1つは見つかったが \a をアラームになっている。アラートの方です。
 \a 07h BEL アラート(Alert)
 \b 08h BS  バック スペース(Back Space)
 \f 0Ch FF  フォーム フィード (Form Feed)
 \n 0Ah LF  行送り、ライン フィード (Line Feed)または(New Line)
 \r 0Dh CR  復帰、キャリッジ リターン (Carriage Return)または(Return)
 \t 09h HT  水平タブ(Horizontal Tab)
 \v 0Bh VT  垂直タブ(Vertical Tab)
 http://www.tamasoft.co.jp/lc/hlp/F017.html→『エスケープ シーケンス』

参考資料:
http://www.wdic.org/w/WDIC/%E3%82%AD%E3%83%A3%E3%83%AA%E3%83%83%E3%82%B8%E3%83%AA%E3%82%BF%E3%83%BC%E3%83%B3
http://www.wdic.org/w/WDIC/%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89
http://www.wdic.org/w/WDIC/%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89
http://www.wdic.org/w/TECH/%E3%82%A2%E3%83%A9%E3%83%BC%E3%83%88

★まとめ
・ネットでは、なかなか略語(語源)まで見つかりませんね。
 1つは見つかったが \a をアラームになっている。アラートの方です。
 \a 07h BEL アラート(Alert)
 \b 08h BS  バック スペース(Back Space)
 \f 0Ch FF  フォーム フィード (Form Feed)
 \n 0Ah LF  行送り、ライン フィード (Line Feed)または(New Line)
 \r 0Dh CR  復帰、キャリッジ リターン (Carriage Return)または(Return)
 \t 09h HT  水平タブ(Horizontal Tab)
 \v 0Bh VT  垂直タブ(Vertical...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング