有时在测试中需要批量写数据到文件,简化的具体点:在一个for循环中遍历一个二维数据,根据数组每一行中首数据,确定当前这行数据要写到那个文件中去,对于这个问题python等操作非常方便,但对于C程序来说操作却有些麻烦,因为这意味着你要打开多个文件句柄,但是细想一下,这个问题也不难,因为这个操作有规律,而且是大批量写数据,因此使用指针数组,然后for循环就好,如果大批量些数据使用switch语句就很烦了。下面用代码示例一下:
#include "stdio.h"
int main(void)
{
int A[3][4]={{0,1,2,3},{1,10,20,30},{2,100,200,300}};
char TxtFilePath[128];
FILE *fpSet[3];//文件类型的指针数组
int k;
for(k=0;k<3;k++)
{
sprintf(TxtFilePath,"./Result_%d.txt",k);
fpSet[k]=fopen(TxtFilePath,"w+");//批量打开文件
if(!fpSet[k])
printf("open file fail\n");
}
for(int i=0;i<3;i++)
{
if(fpSet[i])
fprintf(fpSet[i],"%d %d %d %d\n",A[i][0],A[i][1],A[i][2],A[i][3]);//确定写数据到指定文件
else
printf("can.t open file\n");
}
for(k=0;k<3;k++)
{
fclose(fpSet[k]);//批量关闭文件
}
}