sprintfについて

解決


ZZR250  2010-01-07 07:23:01  No: 71216

いつもお世話になっております.
本当に初歩的な質問で申し訳ないのですが,「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」ぐらいしかなく,にっちもさっちもいかなくなってしまったので質問させていただきました.よろしくお願いします.


επιστημη  URL  2010-01-07 08:02:39  No: 71217

sprintfの直後にprintf("[%s]\n",fstr);でもやってみて。
それでちゃんと出力されるならsprintfのせいじゃない。


zzr250  2010-01-07 08:36:15  No: 71218

それはやりました.すいません.


επιστημη  URL  2010-01-07 09:04:19  No: 71219

ならばsprintfのせいじゃない。


zzr250  2010-01-07 10:13:33  No: 71220

言葉足らずですいません.
直後にprintfはやったんですが,表示されなかったです.

επιστημηさんの言葉はコードは間違ってはいないと受け止めていいのでしょうか?

何か,似たような現象(?)や事例があればアドバイスなどお願いします.


zzr250  2010-01-07 10:57:18  No: 71221

すいません.自己解決です.
実行後,DOSが止まったので気が焦っていました.原因はscanfを付け加えたことを忘れていたことでした.そりゃ止まるわ.

恥ずかしい...トピックを削除したいorz・・・

申し訳ありませんでした.


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加