いつもお世話になっております.
本当に初歩的な質問で申し訳ないのですが,「sprintf」についてお聞きしたいのです.
VC6のコンパイラでコンソール(C言語)を作っているのですがsprintfがどうしてもうまく動きません.
#define NAMEMAX 50 //読み込むファイル名の最大文字列長-1
int main(){
int i,j,uu,yy,line,pixel,rr;
char fstr[NAMEMAX];
FILE *fp_i,*fp_o;
rr=0;
for(rr=0;rr<2;rr++){
sprintf(fstr,"%d.r00",rr);
fp_o = fopen(fstr, "wb");
for(j=0;j<CT*2;j++){
for(i=0;i<CT*2;i++){
fwrite(&temp_im[j][i]/*定義済み*/,sizeof(float),1,fp_o);
}
}
fclose(fp_o);
}
return 0;
}
要するに連番ファイル書き出しのプログラムなんですが
番号.r00
のファイルがどうしても作れません(実行中に止まる).
いろいろ調べて (まさかとは思いながらも)引数にアンパサンドつけたりめちゃくちゃな試しもしたのですが駄目でした.
ループ処理と書き出し処理は連番機能を付ける前の段階で動作確認はしております.
コンソールアプリなんですが,某計算ライブラリをリンクしながらコンパイルしているのですが,ひょっとしたら,「sprintf」自体が駄目なのかと思い,
http://www9.plala.or.jp/sgwr-t/lib/sprintf.html
にあるソースコードも試してみました.
char str1[] = "文字列";
char str2[] = "連結";
char str3[] = "お手軽";
sprintf(str,"%sの%sだって%sよ",str1,str2,str3);
puts(str);
本当にまんまで申し訳ないのですが,これはちゃんと動いたのです.
思い当たる節が「sprintf」ぐらいしかなく,にっちもさっちもいかなくなってしまったので質問させていただきました.よろしくお願いします.
sprintfの直後にprintf("[%s]\n",fstr);でもやってみて。
それでちゃんと出力されるならsprintfのせいじゃない。
それはやりました.すいません.
ならばsprintfのせいじゃない。
言葉足らずですいません.
直後にprintfはやったんですが,表示されなかったです.
επιστημηさんの言葉はコードは間違ってはいないと受け止めていいのでしょうか?
何か,似たような現象(?)や事例があればアドバイスなどお願いします.
すいません.自己解決です.
実行後,DOSが止まったので気が焦っていました.原因はscanfを付け加えたことを忘れていたことでした.そりゃ止まるわ.
恥ずかしい...トピックを削除したいorz・・・
申し訳ありませんでした.
ツイート | ![]() |