ページ 11

beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 17:46
by Field Bloom
こんな質問をここでしていいのか凄くためらうのですが、物凄く初心者のfield bloomです。
beep音(アラート)を鳴らしたいのですが、どうやっても鳴りません。
どこか間違っていますでしょうか?

コード:

/*挨拶して警報を三回発する*/
#include<stdio.h>

int main(void){

	printf("こんにちは。\a\a\a\n");   /*表示とともに警報を三回発する*/
	
	return 0;
}

alertを出す拡張表記\aにてbeep音を鳴らそうと試みているんですが全然なりません。
調べてもどこがおかしいのか全く分からず、ご助力頂けたらと思います。自分でも今調べてみています

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 18:10
by Dixq (管理人)
OSは何ですか?
printfの書き方としてはあっていると思いますが環境依存で鳴らないこともあります。
例えば私のPCはマザーボードにBeep用のスピーカーを付けていないのでBeep音がならないようになっています。
しかしC言語入門時にBeep音鳴らなくて困ることってありますか・・?
特に使う機会も多くないので無理に鳴らす必要はないのでは・・。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 18:25
by Field Bloom
Windows8.1です
明解C言語の本に書いてあったサンプルプログラミングなのですが、
うまくいかないなあ・・・と
アラートってこの先プログラミングで必要ないのでしょうか??
鳴らす必要なさそうなのですね
サンプルプログラムでうまくいかないとこの先ダメなんだろうかと
何が必要で何が不要なのかわかっておらず・・・;

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 19:57
by Dixq (管理人)
printfにおいて、%dや%fや%s、または\tや\nに比べたらずっと必要度は低いと思います。
私もそういえば昔こんなの書いて鳴らしたことあったなという程度です。
アラート鳴らすときは例えばwindowsなら警告音をWINAPIを使って鳴らすか、
音楽再生ライブラリを使って何かの音を再生することになるので、
マザーボードのビープ音を鳴らさないといけない機会はそんなに無いと思います。
マザーボードのビープ音なるソフト昔に一度使ったことありますが、
夜中にスピーカーをOFFにしていても問答無用に盛大に音が鳴るので大嫌いでした。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 20:07
by Field Bloom
問答無用でなるのは困りますね

プログラムがあってても、環境依存なら、ならないわけですね・・・

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 20:40
by softya(ソフト屋)
どの言語もですが、標準ライブラリのscanf()とか文法にunionとか実用プログラムを作るときに余り使わないものも結構あります。
使う人は使うんですけどね。
なので、全部覚えるとは考えないほうが良いですね。
よく使うものから覚えて、使わないものは、こんなのもある程度で良いでしょう。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 21:17
by Dixq (管理人)
DXライブラリにもサンプル用に使う関数で
実際にゲームを作るときには使わない関数とかありますね。
最初はどれが重要でどれが重要でないか分からないでしょうが、
仕事がら厳密な言語仕様を理解する必要があるとかでなければ
最初のうちは興味のあるものをかいつまんで勉強してもよいと思います。
何かソフトを作るうちに必要になれば都度その分野を勉強していって成長する勉強方法も大いにありだと思います。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 21:37
by Field Bloom
scanfよりfreadの方がよく使わるのでしょうか

サンプルプログラミングはさっと流す感じになるのか、
判断がまだつきませんがこんなものもあるんだな、の塩梅が難しいです
実用プログラミングしたいですね・・・

今はまだ簡単なゲームを作ろうとしてるわけなのですが、それすらできてないというのにおちこんでます

新・明解C言語を見てると アセンブラが少しよぎる単語も色々出てきますね
わからまいまま進むのもどうかと思って一つ一つ完璧に理解しようとしてるんですが、
そんな事してるといつまでも進まないのかなあと

よく使う物から覚える、ですか。独学って本当大変ですね。

先生がついてたりすると、ここ覚えろよーとかあるんでしょうけど、
私は普段の情報は本とサイトだけが頼りですからね

あとは皆さんのアドバイスですね

仕事柄・・・ですか。実は物凄く遠い話になるかもしれませんがLINUXを勉強したいと思っていて、
C言語は割と勉強しやすいからと主人に勧められて始めたものでした
一つわかればほかの言語もたぶんわかるようになるよと言われて

でも最初は簡単だったのに、ある所から急に難しくなった感じで戸惑ってます(笑)

だから私の目標はC言語を完全に理解する、だったんですが、完全に理解する、は難しいのでしょうかやはり。

ある程度分かった上で、次の言語なりLINUXの勉強をするーでもいいのかもしれないと今迷っています

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 21:55
by softya(ソフト屋)
まぁ、そんなに早く出来たら専門学校などいらないんですよ。
焦らないのが一番で楽しみましょう。
プログラミングは、原理よりもあるがまま受け入れるのも大事です。

行き詰まったら逆にプログラミング量が減る2D/3DゲームエンジンUnity(無料)などをいじってみるのも良いかもしれません。
http://japan.unity3d.com/create-games/
ちょっと動かすだけなら最初はプログラミングさえ不要です。言語はC#を使いますが、C/C++とJavaのこどものような言語です。
本格的に組むには必要なんですけどね。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 22:19
by Field Bloom
うぅ・・・そうなんですよね・・・
原理よりもあるがまま、ですか。

わあ、Unityですね。主人の持ってた雑誌だったかに ゆにけん? 
とか言う漫画あって漫画だけ読んで知ってました(笑)

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 22:21
by Dixq (管理人)
softyaさんの仰る通り、そんな1週間や2週間で理解できたら大学の専門等ありませんよ。
私は、大学・大学院と情報を専門に勉強してきましたが、「C言語を完全に理解する」なんて遠く及びませんよ。
C言語を完全に理解するならアセンブリの知識が必要になり、それぞれのCPUの仕組みまで完全に理解する必要がありますし、めちゃくちゃ大変ですよ。
趣味で遊ぶ範囲ではそこまで必要ないと思います。
ソフトを作ることが楽しいのであれば低レイヤーの言語の学習すら必要ないんじゃないかと思います。
C#なりJavaなりでプログラムを組む方がずっと楽です。

また、Linuxの勉強とC言語の勉強は競合しないように思いますが、Linuxの知識が必要なのでしょうか?
Macが増えてきたとはいえOSのほとんどがWindowsである現在、趣味でアプリを作る範疇においてLinuxの学習の必要はあるのでしょうか?
Webサーバーを作ったり、組み込みソフトウェアを作ったり、ファームウェアを作ったり、AndroidのようなOSを作ったりと
いったことをしないのであればそんなに必要性を感じません。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 22:25
by みけCAT
Dixq (管理人) さんが書きました:C言語を完全に理解するならアセンブリの知識が必要になり、それぞれのCPUの仕組みまで完全に理解する必要がありますし、
本当ですか?C言語はアセンブラやCPUとは独立していて、だからこそ移植性が高いと思うのですが…?

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 22:25
by softya(ソフト屋)
> だから私の目標はC言語を完全に理解する、だったんですが、完全に理解する、は難しいのでしょうかやはり。

C言語などプログラミング言語を完全に理解していると言える人は、C言語の規格策定に関わっているようなトップレベルの一握りの人たちですね。
C言語の書籍書いている人でも、高レベルではない部分で理解が怪しい人が混じってます。
職業プログラマも含めてかなり適当だと思います。それでもプログラムは組めますから。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 22:28
by softya(ソフト屋)
みけCAT さんが書きました:
Dixq (管理人) さんが書きました:C言語を完全に理解するならアセンブリの知識が必要になり、それぞれのCPUの仕組みまで完全に理解する必要がありますし、
本当ですか?C言語はアセンブラやCPUとは独立していて、だからこそ移植性が高いと思うのですが…?
エンディアン問題もあるから移植性が高いのは幻想では?

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 22:34
by Field Bloom
今はもちろん趣味の範囲なのですが、そのうち何らかのお仕事できる位にはなりたいです。
(甘いと言われそうですが)

Linux使えたらかっこいい!

・・・とか・・・えっと凄く幼稚な発想なんです・・・。どうぞ笑ってください・・・;
UnixとLinuxの話をつい最近教わって、やってみたいなあ・・・ってそれだけなんです

>職業プログラマも含めてかなり適当だと思います。それでもプログラムは組めますから。
職業プログラマさんでもそんな人もいるんですね。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 22:47
by softya(ソフト屋)
Field Bloom さんが書きました:今はもちろん趣味の範囲なのですが、そのうち何らかのお仕事できる位にはなりたいです。
(甘いと言われそうですが)
AndroidアプリをJavaとか、UnityでAndroidやiPhoneゲームとかを目指すと良さそうですね。
使う人の反応がわかりますから。絵も書けるのが強みです。
Field Bloom さんが書きました: Linux使えたらかっこいい!

・・・とか・・・えっと凄く幼稚な発想なんです・・・。どうぞ笑ってください・・・;
UnixとLinuxの話をつい最近教わって、やってみたいなあ・・・ってそれだけなんです
そのかっこいいという感じ方は大事ですよ。
モチベになりますから。
Field Bloom さんが書きました: >職業プログラマも含めてかなり適当だと思います。それでもプログラムは組めますから。
職業プログラマさんでもそんな人もいるんですね。
いえ、大多数の職業プログラマが適当な理解なんです。それでも仕事してます。
規格レベルの完全理解は、その道の学者と言っても良いぐらいの難易度です。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 22:55
by Field Bloom
学者のような知識があまり現場では求められないと言う事なんでしょうか。
もっと専門知識を持つ人ばかりだと思っていました。(プログラマさん)

根拠のないかっこいい!が笑われると思ってなかなか言えなかったんですがよかったです

絵ですか。絵がかける事がアプリ開発の役に立つなんて思いもよりませんでした
ゲームもここにきてああやって絵って使われるんだなあって知ったくらいです。

ただ 今は絵を描くよりプログラム組んでる方が楽しくて、落ち着いたらJavaもやってみたいですね。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 23:17
by Dixq (管理人)
> みけ君
> 本当ですか?C言語はアセンブラやCPUとは独立していて、だからこそ移植性が高いと思うのですが…?

「C言語を完全に理解する」をどこからどこまでと定義する必要がありそうですが、
少なくともC言語でどのようにコンパイルされてどのような機械語になって動作するのかが分からなければ完全に理解したとは言えないのでは?
そこまで理解するにはアセンブリやCPUの知識が必要だということです。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 23:33
by みけCAT
Dixq (管理人) さんが書きました:「C言語を完全に理解する」をどこからどこまでと定義する必要がありそうですが、
少なくともC言語でどのようにコンパイルされてどのような機械語になって動作するのかが分からなければ完全に理解したとは言えないのでは?
それはC言語ではなく、C言語のコンパイラやアセンブラの理解ではないですか?

自分の考えでは、「C言語」とはC言語の規格書に書かれているものであり、
C言語のコードを読み、(不定も含めて)どのような順序で実行(評価)され、
入力をどのように読んで出力をどのように出すかということを(仮にリソースが無限にあれば)予測できる、
ということが「C言語を理解」した人ができることの一つであると考えます。
その際、実際のあるコンピューター上でどのように実装・コード生成され、どのようにCPUが動くかはあまり関係ないでしょう。

Re: beep音を鳴らせません・・・

Posted: 2016年1月11日(月) 23:46
by Dixq (管理人)
本題からあまりにそれるので、ここでやめておきます。
私はCPUの仕様を知っているとC言語の設計におけるチューニングやカスタマイズがある点で容易になる時点で「C言語を完全に理解した」と言えるレベルになるには
CPUの知識が不可欠だと思います。

Re: beep音を鳴らせません・・・

Posted: 2016年1月12日(火) 09:42
by usao
>学者のような知識があまり現場では求められないと言う事なんでしょうか。
>もっと専門知識を持つ人ばかりだと思っていました。(プログラマさん)

たとえ話として適当かどうか微妙ですが…

私は言語学者ではないけれども,日々日本語を使って生活してます.
TVのクイズ番組とかでたまに目にする漢字とか慣用句とかの問題がさっぱりわからないので
どう見ても「日本語を完全に理解」してはいません.でもまぁ日常生活ではそれほど(?)困りません.
普段使う単語などはある程度限られているからでしょう.
(出現頻度が稀な単語等の正確な意味や用法等が本当に必要な時には辞書を引くなりする)


>よく使う物から覚える

ある程度の数をこなしてみないと一体どれがよく使われる物なのかわからないと思います.
なので,最初から目の前に出てきたものを全て覚えながら進もうという方針はかえって回り道になってしまうかもと思います.
オフトピック
「よく使う」と「よく使われる」は異なり得る

Re: beep音を鳴らせません・・・

Posted: 2016年1月12日(火) 11:42
by Field Bloom
usaoさん>
すごくわかりやすいです!その通りですよね・・・
凄く合点が行きました。
確かに私日本語を完全に理解してないです(笑)(それどころか物凄く怪しいです)
そうかそう言う事だったんですね。辞書で調べたりしますものね。
辞書全部把握してる人はいないわけで

数をこなす、ですねー。やってみます

Re: beep音を鳴らせません・・・

Posted: 2016年1月12日(火) 17:29
by ISLe
Field Bloom さんが書きました:Windows8.1です
ウチはWindows10なのですが、ウィンドウズ標準のエラー音が鳴りました。
サウンドの設定でシステムエラー音を「なし」にするとウィンドウズ標準の警告音が鳴ります。
ちなみにエラーダイアログとか警告ダイアログとかで鳴るサウンドと同じです。

エラーも警告もサウンドを「なし」にするとビープ音が鳴るという噂をむかし聞いた覚えがあったのですが
いま(Windows10で)試したら何も鳴りませんでした。
#NT系より前だったかも。環境依存もあるだろうか。

(追記)
Visual Studio 2015 Communityとcygwin gcc 4.9.3で確認しました。

Re: beep音を鳴らせません・・・

Posted: 2016年1月12日(火) 18:27
by Field Bloom
あ!鳴ってます!警告音で鳴りました!
visualstudio2013で行った所正常に鳴らせました!
ありがとうございました!(あまりつかわれないみたいですが;)

Re: beep音を鳴らせません・・・

Posted: 2016年1月12日(火) 18:55
by ISLe
'\a'を標準出力すると警告を発するのですが、これは音に限りません。
サウンドが鳴らない環境では画面が点滅するとかでも良いのです。
聴覚に障害がある方がそのように設定して使っているかもしれないので
サウンドファイルを再生するだけでは聴覚に障害がある方は警告を知る手段を奪われてしまいます。

使う場面が少なくても、たくさんの人が考えて採用したものだから
そこにはいろんな意味が込められているかもしれません。
深く追及することはけっして悪いことではないと思います。

Re: beep音を鳴らせません・・・

Posted: 2016年1月12日(火) 19:12
by Field Bloom
画面点滅もやってみたいですね。
聴覚障害の方にわかるようになるかもしれないというプログラムいいですね。

お優しい言葉ありがとうございます

Re: beep音を鳴らせません・・・

Posted: 2016年1月12日(火) 23:31
by ISLe
'\a'を標準出力するとふつうは音が鳴るだけだけどOS側の設定次第で画面の点滅になる場合もあるってことですよ。
プログラムを作る人が画面を点滅させなきゃとか考えなくて済むのです。
その代わり、警告を発する=音を出す、ではないということが考慮されていないといけません。

Windows8の場合「コントロールパネル」の「コンピュータの簡単操作」の中に
「サウンドを視覚的な通知に置き換える設定」があると思います。
そこで画面(の一部)を点滅させる機能を有効にできます。