ページ 11

画像と音楽ファイルが読み込めません

Posted: 2008年11月15日(土) 21:02
by ぴーすけ
C言語~ゲームプログラミングの館~でchar.pngを保存してサンプルプログラム実行用フォルダに
入れているのに、ビルドすると"char.pngがありません"と表示されます。
また、音楽再生のプログラムを実行しても、"ミュージックファイル test.mid の読み込みに失敗
しました in LoadMusicMem"と表示されてしまいます。
どなたか解決方法をおしえてください。

Re:画像と音楽ファイルが読み込めません

Posted: 2008年11月15日(土) 21:22
by J
ビルドした実行ファイルと同じ場所に画像と音楽が無くては読み込むことはできません。
いま一度パスを確かめてみてください。
それと、できれば、ソースを載せてみてください。他のみなさんが的確に指示できると思います。

Re:画像と音楽ファイルが読み込めません

Posted: 2008年11月16日(日) 05:25
by 御津凪
> それと、できれば、ソースを載せてみてください。他のみなさんが的確に指示できると思います。

規約からすればそうするべきです。
しかし、この問題は実行方法にも問題があるので、
開発環境(VC++ なのか bcc なのか)なども載せたほうが確実ですね。

VC++ だと、単純に実行ファイルが置かれている場所に画像ファイルなどを置いても、
デバッグ実行では読み込んでくれませんし。

Re:画像と音楽ファイルが読み込めません

Posted: 2008年11月16日(日) 09:43
by ぴーすけ
質問の仕方が悪くてすみませんでした。
開発環境はVC++2008です。
今までは、サンプルプログラム実行用フォルダに入れていた画像と音楽を、実行した
ファイルと同じ場所にいれたら、画像、音楽ともに再生できました。
初歩的なミスですみません。
親切な回答本当にありがとうございました。

fgets関数

Posted: 2008年11月28日(金) 15:25
by テクテク
ちょっとお聞きします。
#define MAX_A 512
char buf[MAX_A];

while(fgets(buf,sizeof buf,fp) != NULL){

ファイルを開いてfgetsで1行ずつ読み込みますよね??
sizeof bufの制限値..つまりMAX_Aの値を超えたときの
この場合エラー処理の仕方誰かご存知でしょうか??
知っていたら教えていただきたいんでど。
というよりこういうケースの場合エラー処理
する必要あるんですか??

Re:fgets関数

Posted: 2008年11月29日(土) 11:18
by Dixq (管理人)
行いたいエラー処理の種類によります。
ループ中の読み込みは1行一周じゃないといけないのなら、改行まで読み飛ばしてはどうでしょう?
具体的には更にwhileの中でfgetcを呼んで \n か \0 か EOF が来るまで読み飛ばしてはどうでしょうか。

もしその必要がないなら、例えば上の例でいくと1行の文字数が600文字とかだったら、
2回目に呼ぶ時に後ろの600-511文字が入るだけです。
行単位の読み込みですから、逆に実際に存在する1行の文字数より多くバイト数を指定する分には問題ないです。

Re:fgets関数

Posted: 2008年11月29日(土) 12:09
by たかぎ
手前味噌ですが、以前にほぼ同じ件に関して自サイトで採り上げたことがあります。↓

http://www.kijineko.co.jp/tech/supersti ... imply.html