将变量的值传递给C中的文件名

时间:2014-05-15 12:57:08

标签: c file variables file-io

是否可以在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);
}

我希望现在很清楚,对此造成的不便表示歉意。感谢您的帮助。

1 个答案:

答案 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;的文件。写作。