【发布时间】:2015-10-10 08:52:54
【问题描述】:
我想遍历文件对象的列表/数组: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);
}
研究
我搜索了谷歌,观看了几个 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);
【问题讨论】:
-
这里:
void file_write(file_object, string_to_write){,file_object应该是FILE*的数组还是单个FILE*? -
@CoolGuy 最好是单个,但是如果您还可以解释如何在函数之外创建文件对象数组,我将不胜感激。是否可以创建文件数组?
-
您可以尝试使用二维数组或一维数组到
char*来存储所有文件名/路径并使用索引将它们称为char *fileName[num of files] = {"path/name", ...};这样您就可以使用 for 循环打开它们并将打开的文件描述符存储到另一个数组中,您可以通过另一个 for 循环循环调用您的函数。 -
void file_write(FILE *file_object, const char *string_to_write)