如何将一个二维数组写入文件.dat

img


我用fwrite和fprintf都报错了,但是数表的输出又没错,有没有人能给我做个典范.


#include<stdio.h>

int *creat(int n)
{
    int *a=(int*)malloc(n*n*sizeof(int));
    //int *a=(int*)calloc(n*n,sizeof(int));
    int i,j;
    FILE *fp=fopen("test1-2.dat","w");
    for(i=0;i<n;i++)
    {
        *(a+i*n)=i*4+1;
        fprintf(fp,"%d\t",*(a+i*n));
        for(j=1;j<=i;j++)
        {            
            *(a+i*n+j)=*(a+i*n+j-1)+2;
            fprintf(fp,"%d\t",*(a+i*n+j));
        }
        //fwrite(a,sizeof(*a),n*n,fp);
        fprintf(fp,"\n");
    }
    fclose(fp);
    return a;
}

int main()
{
    int *a,m,i,j;
    scanf("%d", &m);
    a=creat(m);
    for(i=0;i<m;i++)
    {
        for(j=0;j<=i;j++)
        {
            printf("%d\t",*(a+i*m+j));            
        }
        printf("\n");
    }

    return 0;
}