自动输出一组以参数命名的文件

时间:2015-09-09 05:46:06

标签: c

情况如下。我有一个名为par的参数。在程序中它的范围从0.1到1.

for(par=0.1; par<1.001;par+=0.1)

我想要打印出10个单独的文件,名称应该命名为par-0.1.txtpar-0.2.txt ...

在每个文件中,它们的输出对应于par的值,例如:

fprintf(fp,"The par in this file is %lf", par);

我该如何自动执行此操作?将名称命名为与更改参数值对应的文件。

为方便起见,我把程序需要修改。

#include <stdio.h>

int main(void)
{
    FILE * fp; 
    double par;
    const char * filename= "par-0.1.txt";

    for(par=0.1; par<1.001; par+=0.1)
    {   
        fp = fopen(filename, "w");//I want a changing filename here!!
        fprintf(fp, "In this file, par is %lf", par);
        fclose(fp);
    }   
    return 0;
}

2 个答案:

答案 0 :(得分:3)

这应该有用。

#include <stdio.h>

int main(void)
{
  FILE * fp; 
  double par;
  char filename[128];

  for(par=0.1; par<1.001; par+=0.1)
  {   
    snprintf(filename, sizeof filename, "par-%2.1f.txt", par);
    // not 100% sure how the float will get parsed in.
    fp = fopen(filename, "w");//I want a changing filename here!!
    fprintf(fp, "In this file, par is %lf", par);
    fclose(fp);
  }   
  return 0;
}

答案 1 :(得分:2)

有一件事,你正在初始化一个只读的字符串常量。你无法按照自己的方式改变它。

根据您的要求,您需要char数组,并使用sprintf()

char str[20];

sprintf(str, "par-%2.1f.txt", par);