C语言,怎样将二维数组存入文件?

C语言,怎样将二维数组存入文件?,第1张

int main()

{

int a[2][3] = {2,4,4,2,3,4}//比如说你要把它存到一个文件中。

//现在你要现在你的源程序的目录下建立一个比如说是

data.txt文件

//现在开始写程序

FILE *fp

if ((fp = fopen("data.txt","w"))==NULL)

{

printf("the file can not open..")

exit(0)

}//出错处理

for(int i = 0i <2i++)

for(int j= 0j <3j++)

fprintf(fp,"%d",a[i][j])//把每个数组元素以十进制的方式存入data.txt中

fclose(fp)//OK就这么简单

return 0

}

#include<stdio.h>

#include <time.h>

#define N 3 //N定义数组的大小

void ShellSort(int a[],int n)

//直接插入排序:对含有n个整数的数组a[]进行从小到大排序

{

    int i,j,t

    for(i=1i<ni++)

        for(j=i-1j>=0&&a[j]>a[j+1]j--)

        {

            t=a[j]

            a[j]=a[j+1]

            a[j+1]=t

        }

}

int main()

{     

    int i

    int a[N*N]={0},b[N*N]={0}//二维数组a[n][n]在内存中就是以连续的一片空间存放的

    //本质上就是一个n*n大小的一维数组,故此处直接采用一维数组存取

    FILE *fp,*fp2

    srand((unsigned int)time(NULL))//初始化随机数种子

    for(i=0i<N*Ni++)

    {   

        a[i]=rand()%100+1//随机生成100以内的整数,为了方便采用随机数

        //实际上可以采取手工输入

        //a[i]=scanf("%d")                 

        printf("%3d",a[i])//输出该数

        if(i>0&&(i+1)%N==0) //按n*n行格式断行

            printf("\n")  

       

    }

    ShellSort(a,N*N)  //数据排序

    if((fp=fopen("d:\\tmp\\abc.txt","w"))==NULL)  //请自行更改文件存放位置及文件名

    {  

        printf("打开文件出错.\n")  

        return 0  

    }  

    printf("排序结果写入文件\n")

     for(i=0i<N*Ni++)

     {   

                 

         printf("%3d",a[i])////一起输出排序结果

         fprintf(fp, "%3d ",a[i]) //写到文件

         if(i>0&&(i+1)%N==0) 

            {

                fprintf(fp,"\n")//换行

                printf("\n")

            }

            

    }

  

    fclose(fp)     

    printf("读取文件\n")

    if((fp2=fopen("d:\\tmp\\abc.txt","r"))==NULL)  

    {  

        printf("打开文件出错.\n")  

        return 0  

    } 

    for(i=0i<N*Ni++)

     {   

        fscanf(fp2, "%d",&b[i])  

        printf("%3d",b[i]) 

        if(i>0&&(i+1)%N==0)//换行

            printf("\n")  

        

    }

  

    fclose(fp2)

    return 0

   

  }

#include <fstream>

#include <iostream>

using namespace std

int main()

{

  int a[10][10]//10*10的二维数组。

  int i,j

 

  //输入二维数组的值。

  for(i = 0i <10i ++)

  {

      for(j = 0j <10j ++)

      {

          cin>>a[i][j]

      }

  }

 

  ofstream out("out.txt")//打开文件。

  for(i = 0i <10i ++)

  {

      for(j = 0j <10j ++)

      {

          out<<a[i][j]<<','//将每个元素写入文bai件,以逗号分隔。

      }

      out <<endl//每行输出结束,添加换行。

  }

 

  return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11711540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存