c语言写入文件方法

c语言写入文件方法,第1张

要写入文件,可以按照以下步骤进行 *** 作

1 在代码中引用stdio.h,即

#include <stdio.h>

C语言的所有文件 *** 作接口,均声明在这个头文握和庆件中。

2 定义FILE *类型的变量。

3 打开文件,使用函数为fopen。格式为:

FILE *fopen(char *filename, char *mode)

参数filename为要写入的文件名,mode为打开的方式,如果仅需写入文件,可以使用"w"或

"wb"。

返回棚粗值为文件指针类型,赋值给之前定义的变量。如果返回值为NULL,代表打开失败,无法写入。

4 对文件进行写 *** 作。C语言中有很多写文件的接口,包括fprintf, fwrite, fputs, fputc等等。

写 *** 作可以执行多次。

5 在全部写 *** 作完成后,执行fclose函数关闭文件指段握针。这样就实现了C语言写入文件。

程序注意的一点,二进制和文本形式的读取区别你需要巩固,读的文件就不要以读写形式打开,养成一个好的习惯。\x0d\x0a另外一个不太重要的一点,id确实很少作为int类型的,因为有些id会很长,比如10位20位,这慧搭样int就存不下了,而用char数组存的话只需要10个字节20个字节就能存下,对于每一位也好比较。\x0d\x0a#include \x0d\x0a#include \x0d\x0atypedef struct student\x0d\x0a{\x0d\x0a int unsigned id\x0d\x0a float score [3]\x0d\x0a float rank\x0d\x0a}Student\x0d\x0a\x0d\x0aint main ()\x0d\x0a{\x0d\x0a Student s\x0d\x0a FILE * fp\x0d\x0a fp=fopen("C:\\f11.txt","r")//尽量以可读方式打开\x0d\x0a if (!fp)\x0d\x0a {\x0d\x0a printf("file cannot be opened")\x0d\x0a exit(1)\x0d\x0a }\x0d\x0a //fscanf(fp,"%d %f %f %f",&s.id,&s.score[0],&s.score[1],&s.score[2])这一行拿到下面while语句里面\x0d\x0a //fprintf(stdout,"%g",s.score[2]) \x0d\x0a FILE * fw\x0d\x0a fw=fopen("C:\\f11a.txt","w")/前渗拿/注喊桐意wb是以2进制形式打开文件,还有目录的格式\x0d\x0a if (!fw)\x0d\x0a {\x0d\x0a printf("file cannot be opened")\x0d\x0a exit(1)\x0d\x0a } \x0d\x0a\x0d\x0a while(!feof(fp))\x0d\x0a {\x0d\x0a fscanf(fp,"%03d%f%f%f",&s.id,&s.score[0],&s.score[1],&s.score[2])\x0d\x0a s.rank=(s.score[0]+s.score[1]+s.score[2])/3\x0d\x0a fprintf(fw,"%03d\t%.1f\t%.1f\t%.1f\t%.1f\n", s.id, s.score[0], s.score[1], s.score[2], s.rank)//尤其注意fprintf和fwrite不同,fwrite是以二进制形式写文件,如果用fwrite的话将会显示乱码,fwrite和fread配套,fscanf和fprintf配套\x0d\x0a }\x0d\x0a\x0d\x0a fclose (fp)\x0d\x0a fclose(fw)\x0d\x0a return 0\x0d\x0a}

1、首先输入下方的代码

#include <神腊隐stdio.h>

int main()

{

  //下面是写数据,将数字0~9写入到data.txt文件中

  FILE *fpWrite=fopen("data.txt"局拿,"w")

  if(fpWrite==NULL)

  {

      return 0

  }

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

      fprintf(fpWrite,"%d ",i)

  fclose(fpWrite)

  //下面是读数据,将读到的数据存到数组a[10]中,并且打印到控制台上

  int a[10]={0}

  FILE *fpRead=fopen("data.txt","r")

  if(fpRead==NULL)

  {

      return 0

  }

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

  {

      fscanf(fpRead,"%d ",&a[i])

      printf("%d ",a[i])

  }

  getchar()//等待

  return 1

}

2、面是写入到txt后的截图:

3、下面是读取文件后打印游厅数据到控制台的截图。


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

原文地址: http://outofmemory.cn/yw/12314478.html

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

发表评论

登录后才能评论

评论列表(0条)

保存