是否可以在C中的FILE构造之后声明的文件名中传递变量的值?
我的目的是在以下代码片段中将变量w的值打印在文件名中:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "nr.h"
#include "nrutil.h"
double h = 0.01;
double w = 5.0;
int main(void)
{
FILE * fp = fopen("q1function_W_VALUEHERE.dat","w+");
/* The point I would like to have the value of w printed */
for(i = 0; i < N; i++)
{
t[i] = i * h;
y[i] = func(t[i]);
fprintf(fp, "%f \t %f \n", t[i], y[i]);
}
fclose(fp);
return 0;
}
int i = 42;
char fname[PATH_MAX];
snprintf(fname, PATH_MAX, "file_%d.txt", i);
FILE * f = fopen(fname, "w");
if (f != NULL)
{
// write stuff to f...
fclose(f);
}
我希望现在很清楚,对此造成的不便表示歉意。感谢您的帮助。
答案 0 :(得分:5)
你的问题不是很清楚,但我猜你的意思是这样的:
int i = 42;
char fname[PATH_MAX];
snprintf(fname, PATH_MAX, "file_%d.txt", i);
FILE * f = fopen(fname, "w");
if (f != NULL)
{
// write stuff to f...
fclose(f);
}
这会打开一个名为&#34; file_42.txt&#34;的文件。写作。