ファイル名の自動化


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

毎日毎日プログラミングが楽しいよ。どうしよう。最近は数値計算法の2回目のレポートに出題されると思われる、ラザフォード散乱の差分によるシミュレーションに取り組んでいます。レポートはルンゲ=クッタを要求しているらしいが、とりあえずオイラー法でやってみた。

で、大量にgnuplot用のデータファイルを吐く方式になってしまったので、自動的にeuler0.dat, euler1.dat, euler2.dat, ...となるようにした。


にあったやつを少しいじった。

  1. FILE *my_fopenw(int x)
  2. {
  3. if (x >= 0 /* && x < 2 */) {
  4. char file[256];
  5. sprintf(file, "./euler%d.dat",x);
  6. return fopen(file, "w");
  7. }
  8. return (FILE *)NULL;
  9. }
  10.  
というのと、
  1. FILE *my_fopenr(int x)
  2. {
  3. // int x;
  4. if (x >= 0 /* && x < 2 */) {
  5. char file[256];
  6. sprintf(file, "./euler%d.dat",x);
  7. return fopen(file, "r");
  8. }
  9. return (FILE *)NULL;
  10. }
  11.  
というのをつくり、int main()の中で
  1. while((fpOUT = my_fopenr(j)) != NULL){
  2. j++;
  3. }
  4. fpOUT = my_fopenw(j);
  5. printf("Create new file euler%d.dat\n",j);
  6.  

って書いた。これを全部合わせて新たな関数として定義したほうがいいんだろうけど、やり方がわからんので後回し。