情况如下。我有一个名为par
的参数。在程序中它的范围从0.1到1.
for(par=0.1; par<1.001;par+=0.1)
我想要打印出10个单独的文件,名称应该命名为par-0.1.txt
,par-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;
}
答案 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);