四联光电智能照明论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1994|回复: 0
打印 上一主题 下一主题

Linux下C语言的文本文件读写(fputc,fgetc,fwrite,fread对文件读写操作)

[复制链接]
  • TA的每日心情
    开心
    2018-11-9 08:52
  • 241

    主题

    691

    帖子

    7652

    积分

    论坛元老

    Rank: 8Rank: 8

    积分
    7652
    跳转到指定楼层
    楼主
    发表于 2016-11-26 07:41:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    Linux下C语言的文件(fputc,fgetc,fwrite,fread对文件读写操作)
    //==================================
    fputc 向文件写入字符

    1. #include <stdio.h>
    2. #include <stdlib.h>

    3. main()
    4. {
    5.   FILE *fp;
    6.   char ch;

    7.   if((fp=fopen("test.txt","w"))==NULL)
    8.   {  
    9.     printf("不能打开文件\n");
    10.   exit(0);
    11.   }

    12.   while ((ch=getchar())!='\n')
    13.   fputc( ch, fp );

    14.   fclose(fp);
    15. }
    复制代码


    -------------
    小提示:
    fp=fopen("test.txt","w") ,把"w"改为 "a" 可以创建文件并且追加写入内容
    exit(0);  需要包含 stdlib.h 头文件,才能使用

    //============================================================
    fgetc 读取字符

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. main( int argc, char *argv[] )
    4. {
    5.   char ch;
    6.   FILE *fp;
    7.   int i;

    8.   if((fp=fopen(argv[1],"r"))==NULL)
    9.   {
    10.     printf("不能打开文件\n");
    11.     exit(0);
    12.   }

    13.   while ((ch=fgetc(fp))!=EOF)
    14.   putchar(ch);

    15.   fclose(fp);
    16. }
    复制代码

    文件结尾,通过判断 EOF

    //==============================================================
    fwrite 的使用
    使数组或结构体等类型可以进行一次性读写

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. main()
    4. {
    5.   FILE *fp1;
    6.   int i;
    7.   struct student{
    8.   char name[10];
    9.   int age;
    10.   float score[2];
    11.   char addr[15];
    12.   }stu;

    13.   if((fp1=fopen("test.txt","wb"))==NULL)
    14.   {
    15.     printf("不能打开文件");
    16.     exit(0);
    17.   }
    18.     printf("请输入信息,姓名 年龄 分数1 分数2 地址:\n");
    19.   for( i=0;i<2;i++)
    20.   {
    21.     scanf("%s %d %f %f %s",stu.name,&stu.age,&stu.score[0],&stu.score[1], stu.addr);
    22.     fwrite(&stu,sizeof(stu),1,fp1);
    23.   }

    24.   fclose(fp1);
    25. }
    复制代码

    //===============================================================
    fread 的使用

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. main()
    4. {
    5.   FILE *fp1;
    6.   int i;
    7.   struct student{
    8.     char name[10];
    9.     int age;
    10.     float score[2];
    11.     char addr[15];
    12.   }stu;
    13.   if((fp1=fopen("test.txt","rb"))==NULL)
    14.   {
    15.     printf("不能打开文件");
    16.     exit(0);
    17.   }
    18.   printf("读取文件的内容如下:\n");
    19.   for (i=0;i<2;i++)
    20.   {
    21.     fread(&stu,sizeof(stu),1,fp1);
    22.     printf("%s %d %7.2f %7.2f %s\n",stu.name,stu.age,stu.score[0],stu.score[1],stu.addr);
    23.   }
    24.   fclose(fp1);
    25. }
    复制代码

    //==========================================

    fprintf , fscanf, putw , getw , rewind , fseek 函数
    这些函数的话我就不演示了 ,
    这些函数基本都一对来使用,例如 fputc 和 fgetc 一起来用
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Silian Lighting+ ( 蜀ICP备14004521号-1 )

    GMT+8, 2024-5-15 09:49 , Processed in 1.109375 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表