gpt4 book ai didi

c - 遍历多个文件对象

转载 作者:太空宇宙 更新时间:2023-11-04 06:22:01 25 4
gpt4 key购买 nike

我想遍历文件对象的列表/数组:file_x,file_y,file_z,..., 在每个文件对象上调用一个函数,在 C 中。

问题

我如何创建一个函数,它将 (i) 文件对象和 (ii) 字符串作为函数的参数,然后将字符串写入该文件对象。然后,For 循环可以在文件对象列表/数组上执行该函数。

void file_write(file_object, string_to_write){
fprintf(file_object, "%s\n", string_to_write);
}

研究

我已经搜索过 Google,观看了几个 Youtube 教程的部分内容并在 SO 上搜索了相关问题,但以下是我能达到的最佳效果。任何关于如何以理想的功能更好地回答上述问题的建议,将不胜感激。

FILE *file_x, *file_y, *file_z, *file_vx, *file_vy

file_x = fopen("./data/x.dat","w");
file_y = fopen("./data/y.dat","w");
file_z = fopen("./data/z.dat","w");
file_vx = fopen("./data/vx.dat","w");
file_vy = fopen("./vy.dat","w");

fprintf(file_x, "#X(t) Coordinates\n#Time (t)\n");
fprintf(file_y, "#Y(t) Coordinates\n#Time (t)\n");
fprintf(file_z, "#Z(t) Coordinates\n#Time (t)\n");
fprintf(file_vx, "#X(t) Velocities\n#Time (t)\n");
fprintf(file_vy, "#Y(t) Velocities\n#Time (t)\n");

fclose(file_x);
fclose(file_y);
fclose(file_z);
fclose(file_vx);
fclose(file_vy);

最佳答案

声明一个 FILE 指针,然后可以声明两个数组,一个用于文件名,一个用于要写入文件的数据。创建一个循环并像这样迭代:

int main(void)
{
FILE *file_x;

const char *dirs[] = { "./data/x.dat",
"./data/y.dat",
"./data/z.dat",
"./data/vx.dat",
"./vy.dat"
};

const char *data[] = { "#X(t) Coordinates\n#Time (t)\n",
"#Y(t) Coordinates\n#Time (t)\n",
"#Z(t) Coordinates\n#Time (t)\n",
"#X(t) Velocities\n#Time (t)\n",
"#Y(t) Velocities\n#Time (t)\n",
};

for( int n = 0 ; n < 5 ; n++ )
{
file_x = fopen(dirs[n],"w");

if ( !file_x )
{
perror(dirs[n]);
exit(EXIT_FAILURE);
}
fprintf(file_x , "%s" , data[n]);

fclose(file_x);
}
return 0;
}

关于c - 遍历多个文件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33052118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com