- ベストアンサー
printf("\a");のアラーム音
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
環境にもよるのですが…Windowsですか?一般的なPCの場合、 スピーカからなる宇和揺る普通のサウンドの他に、BEEP音源というのがありまして。 こちらはデバイスが違うのでPC本体から直接音が鳴ります。 # 現在では、例えばシステムの異常を通知するような時くらいしか使われないかも。 で、\aにこちらが使われるのは、多分にMS-DOS時代からの歴史的な経緯じゃないかと思います。 昔はコレでも普通でしたし、 \aは「何か音がなればいい」というものであって、どんな音を鳴らすかは別に決まってないですし、 めったに使われないので綺麗なサウンドとか必要ないと思いますし、 OSがおかしくてもなる可能性がBEEPの方が高いかもしれませんし…。
その他の回答 (1)
- jacta
- ベストアンサー率26% (845/3158)
標準出力に'\a'を出力した場合、それは「警報(alert)」ということが決まっているだけで、音が鳴らなければならないわけではありません。 例えば、画面がフラッシュするとか、マウスなどが振動するとか、旗が振られるとか、狼煙が上がるとかでも全く問題ないわけです。 > なぜスピーカから鳴らないのでしょうか。 > なぜPC本体から鳴っているのでしょうか。 まともな音ならスピーカ(PC本体の中にあるか外にあるかは別として)が鳴っているはずです。 それとも、ハードディスクやファンなどの機械音がするとか、そういう話しでしょうか? いずれにしても、正確な環境ぐらいは書きましょう。
お礼
ご回答ありがとうございます。
関連するQ&A
- 現在、私は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; はあっても無くてもいいようなんですが どういう意味があるんでしょうか?
- ベストアンサー
- その他(インターネット・Webサービス)
- printf()で出力したいんですが?
#include <stdio.h> int main( void ) { int air[4]; int i; i = 0; printf( "データ入力\n" ); do{ scanf( "%d\t", &air[ i++ ]); } while(air[ i - 1 ] > 0 ); printf( "%d\n", i ); return 0; } このプログラムはコンパイル出来ますが、期待していたprintf関数での出力ができません。 その理由として何がありますか?関数の使い方が間違っているのか、DO~WHILE文が使えない場所 なのか、もし直すとすればどう直せばいいのですか。
- ベストアンサー
- C・C++・C#
- printfの使い方
#include <stdio.h> main() { printf("正しい?"); int a; int b; int c; printfをこのように使うと int がここでは 宣言できないとなってしまうのは何故ですか?
- ベストアンサー
- C・C++・C#
- 昇順に並べ替えるプログラム(続き)
(C言語)実行例のような3つの整数を読み込み昇順に並べ替えるプログラムは途中までわかったのですがあとはどう修正・追加をすればいいのでしょうか? 実行例 1:45 2:43 3:38 昇順に並べ替えました。 1:38 2:43 3:45 途中までのプログラム #include<stdio.h> int main(void) { int n1,n2,n3; printf("1:"); scanf("%d",&n1); printf("2:"); scanf("%d",&n2); printf("3:"); scanf("%d",&n3); printf("昇順に並べ替えました。\n"); return 0; }
- 締切済み
- C・C++・C#
- なぜgccはstdio.hをインクルードしなくてもprintfが実行できるのか
なぜgccはstdio.hをインクルードしなくてもprintfが実行できるのでしょうか。 暗黙にインクルードされるヘッダと されないヘッダファイルの差分等あれば教えていただきたく。。 // main.c int main(){ printf("SWSW\n") ; return 0 ; } % gcc main.c % ./a.out SWSW
- ベストアンサー
- C・C++・C#
- 配列について
初歩的な質問ですいませんが、質問よろしくお願いします。 ◎1----------------------------- #include<stdio.h> int main(void) { char ss[10]="AB"; printf("ss=%s\n",ss); return 0; } ------------------------------------ ◎2-------------------------------- #include<stdio.h> int main(void) { char ss[10]; ss[0]='A'; ss[1]='B'; ss[2]=0; printf("ss=%s\n",ss); return 0; } ----------------------------------- ◎3------------------------------- #include<stdio.h> #include<string.h> int main(void) { char ss[10]; strcpy(ss,"AB"); printf("ss=%s\n",ss); return 0; } ----------------------------------- ◎4------------------------------- #include<stdio.h> int main(void) { char ss[10]; ss="AB"; printf("ss=%s\n",ss); return 0; } ---------------------------------- 以上4つのプログラムで、◎2と◎3は正常に動くと理解できたのですが、何故、◎1は正常に動き、◎4は「'const char [3]' から 'char [10]' に変換できません。」といったようなエラーが出てしまうか分かりません。 教えていただければ嬉しいです。
- ベストアンサー
- C・C++・C#
- C言語でscanf()が先に実行されるのはなぜですか?
C言語でscanf()が先に実行されるのはなぜですか? #include <stdio.h> int main(void){ int intNum; printf("整数を入力してください:\n"); scanf("%d", &intNum); printf("入力値は:%d\n",intNum); return(0); }
- 締切済み
- C・C++・C#
- int型とchar型について
C言語初心者です。 よろしくお願いします。 ◎1----------------------- #include<stdio.h> int main(void) { int ss[4]="789"; printf("%c\n",ss[0]); return 0; } --------------------------- ◎2----------------------- #include<stdio.h> int main(void) { int *p; p="789"; printf("%c\n",*p); return 0; } --------------------------- ◎1、◎2の2つのプログラムについて疑問があります。 ◎1の「int ss[4]="789";」と◎2の「int *p;」のintの部分は今まで、何の疑問も抱かず、「char」として入力していました。 そこでchar型は1バイトの整数、int型は4バイトの整数ということで容量が違うだけで、intとしても大丈夫だろうと思ったのですが、 ◎1では、「'initializing' : 'char [4]' から 'int [4]' に変換することはできません。」とエラーが出て、◎2では「'char [4]' から 'int *' に変換することはできません。」とエラーが出ます。 intは文字列は扱えないということなのでしょうか? 以上intだと実行できない理由がわかりません。 初歩的なことですいませんが、教えていただけると嬉しいです。
- ベストアンサー
- C・C++・C#
お礼
ご回答ありがとうございます。