C语言 把二维数组写入文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 把二维数组写入文件?相关的知识,希望对你有一定的参考价值。

下面的代码是随机生成100*100的二维数组的一个小程序,请问该怎么把生成的数组写到一个TXT文件中呢?要求每一行元素间用“,”隔开~
#include <stdio.h>
#include <stdlib.h>

void main(void)

int array[100][100],i,j;

for(i=0;i<100;i++)
for(j=0;j<100;j++)

array[i][j]=rand()%100+1;


for (i=0;i<100;i++)

for (j=0;j<100;j++)
printf("%d,",array[i][j]);
printf("\n");


参考技术A 用shell的输出重定向即可,比如你的可执行程序是a.out,那么这么执行就可以了:

a.out > output.txt

就这么简单。
参考技术B #include <stdio.h>
#include <stdlib.h>

void main(void)

int array[100][100],i,j;
FILE *fp;

if((fp=fopen("sxp.txt","wb+"))==NULL)

printf("Cannot open file !");
exit(1);


for(i=0;i<100;i++)
for(j=0;j<100;j++)

array[i][j]=rand()%100+1;


for (i=0;i<100;i++)

for (j=0;j<100;j++)
fprintf(fp,"%d , ",array[i][j]);
fprintf(fp,"\r\n");

fclose(fp);
printf("OK !");

参考技术C #include <stdio.h>
#include <stdlib.h>

void main(void)

int array[100][100],i,j;
FILE *fp = fopen("result.txt", "w");
if(!fp)

printf("create and open file failed\n");
return;


for(i=0;i<100;i++)

for(j=0;j<100;j++)

array[i][j]=rand()%100+1;



for (i=0;i<100;i++)

for (j=0;j<100;j++)

printf("%d,",array[i][j]);
if(j < 99)

fprintf(fp,"%d,",array[i][j]);

else

fprintf(fp,"%d",array[i][j]);


printf("\n");
fprintf(fp,"\n");


fclose(fp);
本回答被提问者采纳

C语言 怎么把文件中的信息储存到结构体数组中

要把这个文件中的数据保存到结构体数组中

我是这么写的

输出为什么是这个

总体写得不错,问题出在你的

fscanf和fprintf函数参数传递错误了

#include "stdio.h"
#include "stdlib.h"
struct s

  int id;
  char name[10];
  int co1;
  int co2;
  int co3;
  int co4;
;
int main()

   int i=0,count;
   struct s st[10];
   char fname[10],ch;
   FILE *infile,*outfile;
   printf("please input data file name:\\n");
   scanf("%s",fname);
   infile=fopen(fname,"r");
   outfile=fopen("output.txt","w");
   if(infile==NULL)
   
     printf("\\nFailed to open the file");
 exit(1);
   
   fscanf(infile,"%d",&count);
   while(i<count)
   
     fscanf(infile,"%d %s %d %d %d %d\\n",&(st[i].id),st[i].name,&(st[i].co1),&(st[i].co2),&(st[i].co3),&(st[i].co4));
 fprintf(outfile,"%d %s %d %d %d %d\\n",st[i].id,st[i].name,st[i].co1,st[i].co2,st[i].co3,st[i].co4);
     i++;
   
   fclose(infile);
   fclose(outfile);

首先,你的name是结构体中的字符数组,fscanf要传入的应该是存储字符的地址,所以直接是数组名name就行


第二,fprintf你要写入文件的数据,应该是真正的数据本身,不是数据的地址,所以应该将变量前的取地址符全去掉就好,


第三,注意加好换行符\\n


结果:

text.txt中内容就是output.txt中的内容

参考技术A 你用了地址运算符&,输出的应该是各个数据的存储地址。

以上是关于C语言 把二维数组写入文件?的主要内容,如果未能解决你的问题,请参考以下文章

将二维数组写入C中的文件

php将数组元素按行写入文本文件

PHP如何把数据写入JSON文件并在另一PHP文件读取JSON数据?

C语言中如何将一个数组导入到文件中?

java程序如何写入数组

怎么把一个二维数组写入一行数据库中?