如何在C中一个接一个地在循环中写入文件中的列

时间:2017-08-03 10:21:42

标签: c

我像测试一样使用这个代码,所有数组都将在循环中计算,然后一个接一个地写入文件。我的意思是,新的数组将在循环的下一步计算,我想将它们一个接一个地添加到同一个文件中......

#include <stdio.h>
int aa[5]={1,2,3,4,5};

int main()
{
    FILE* ff;
    ff = fopen("file.txt","w+");
    for (int j=0;j<5;j++) {
      for (int i=0;i<5;i++) {
        aa[i]+=j;
        fprintf(ff,"%d\n", aa[i]);
    }
    }
    fclose(ff);
}

但我希望看到下一个结果文件:

1 2 4 7  11
2 3 5 8  12 
3 4 6 9  13
4 5 7 10 14
5 6 8 11 15

2 个答案:

答案 0 :(得分:1)

将两个printf语句调整为一个for循环

for (int i=0;i<5;i++){
        fprintf(ff,"%d\t", aa[i]);
        fprintf(ff, "%d\n", bb[i]);
    }

答案 1 :(得分:0)

像这样:

#include <stdio.h>

int aa[5]={1,2,3,4,5};

int main(void){
    char lines[5][32];
    FILE *ff;

    ff = fopen("file.txt","w+");
    for(int j = 0; j < 5; j++) {
        rewind(ff);
        for(int i = 0; i < 5; i++){//Read the current file
            if(fscanf(ff, " %31[^\n]", lines[i]) != 1)
                *lines[i] = 0;
        }
        rewind(ff);
        for(int i = 0; i < 5; i++) {
            aa[i] += j;
            fprintf(ff,"%s %-2d\n", lines[i], aa[i]);//Add data and export
        }
    }
    fclose(ff);
}