プロジェクト → 設定 → C/C++ → プロセッサの定義
→ リンク → プロジェクトオプション
の設定がCONSOLEではなくてWINDOWSになっている場合、
stderrの表示はどうすれば、いいのでしょうか?
for (HMOD=1;HMOD<100;HMOD++)
for (HnC=0;HnC<20;HnC++)
{
sprintf(fn, V%02d%02d.wav, (HMOD-1), HnC);
if ((fp = fopen(fn, rb)) == NULL)
{
fprintf(stderr,%s cannot open Model No. = %d,
Sample No. = %d .\n,fn,HMOD,HnC);
exit(3);
}
}
ファイルが当該DIRECTORYにあるのに、
HMOD=11、HnC=7で
(即ちV11007.wavのファイルが)オープン出来なかった
理由が知りたいのです。)
OPEN/CLOSEはちゃんと各所で噛み合わさっていて、
どのRAM容量を持つパソコンでも、この現象が起きることは
確認しています。
sprintf して MessageBox で画面表示するか
デバッガーで直接覗けばよいのではないですか?
> OPEN/CLOSEはちゃんと各所で噛み合わさっていて、
本当にかみあってますか?
デバッガーで確認しましたか?
ちゃんと実行されていることをなんらかの方法で確認していますか?
現象からいって fclose されていない、が一番怪しいです
RAM 容量は(まったくといっていいほど)関係ありません
なぜ、質問ごとに名前を変えるのでしょうか?
もしかして、1980個のファイルを同時に開いた状態にしようとしていませんか?
向こうにあれだけレスが付いているのに無視してよく新規でスレッド起こせるな。
いい根性しとる。
申しわけないです。
あちらにも書きこみたいんですが、今は出来ないのです。
>もしかして、1980個のファイルを同時に開いた状態にしようとしていませんか?
いや。開きながら、使えばすぐ閉じて行っています。
>ちゃんと実行されていることをなんらかの方法で確認していますか?
Open箇所でカウンターが+に、Closeの箇所でそのカウンターが-になるようにして、
そのカウンターがOpen前には必ず0になっていることを確かめに行っています。
>現象からいって fclose されていない、が一番怪しいです
やっているつもりなんですが。
>HMOD=11、HnC=7で
>(即ちV11007.wavのファイルが)オープン出来なかった
> 理由が知りたいのです。)
HMOD=11、HnC=7の時って、、、
>sprintf(fn, V%02d%02d.wav, (HMOD-1), HnC);
・・・なんだから、「V11007.wav」ではなくて「V1007.wav」では???
単なる書き間違いか?(?_?)
質問の方はエラーの表示のしかた?
デバック目的ならTRACEもいいかと。
こんなのとか、、、
http://www24.cds.ne.jp/~neg/pro/piyo1/comp/trace.html
FOPENがフェ-ルした直後にGETLASTERRORをかませようとしています。
どなたか使い方をご存知ですか?
少なくとも、戻り値をウォッチあたりで見れるようにしたい
勉強すべきなのは日本語ではなく人にものを尋ねる態度だったってことですか?
#include stdafx.h
#include <stdlib.h>
#include <iostream>
using namespace std;
void check()
{
char filename[_MAX_PATH];
FILE* fp;
for (int i=1;i<100;i++){
for (int j =0;j<20;j++){
sprintf(filename, V%02d%02d.wav, (i-1), j);
if ((fp = fopen(filename, rb)) == NULL){
cout << filename << endl;
cout << _sys_errlist[errno] << endl;
return;
}
fclose( fp );
}
}
}
int main(int argc, char* argv[])
{
check();
return 0;
}
> 勉強すべきなのは日本語ではなく人にものを尋ねる態度だったってことですか?
...というより、余計な言い訳するとカドが立つってことでしょう。
> >もしかして、1980個のファイルを同時に開いた状態にしようとしていませんか?
> いや。開きながら、使えばすぐ閉じて行っています。
上のリストを見るかぎりforループ内のどこにも対応するfcloseが無いようですが。
だから1980個だといわれているのでしょう。
二度手間三度手間となっている様ですのでその部分のリストを手を加えずにコピペで
持ってきてアップされたらいかがでしょう。