c语言文件I/O 文件读取和写入

C语言文件相关函数主要有以下几种:

  1. FILE* fopen(char* filepath, char* mode);
    打开文件函数,传入文件地址和打开模式
    文件打开模式包括
                     "r"  读取
                    ,"w" 写入模式,将现有文件清空。如果不存在则创建文件
                    ,"a" 附加模式,在文件末尾追加数据,不存在则创建文件
                    ,"r+"更新模式,可读可写
                    ,"w+"更新模式,可读可写,文件清空,不存在则创建文件
                    ,"a+"更新模式,可读可写,末尾追加,不存在则创建文件,可以读取全部数据,但只能在末尾追加
    返回文件指针
     
  2. char  getc(FILE* fp);
    从fp所指文件中读取一个字符,并返回。
    与char getchar()的区别就是,此函数需要指定字符获取源,而getchar()默认从stdin获取输入。
    也就是说 char getchar() 等价于 char getc(stdin) 。
     
  3. putc(char ch, FILE* fp);
    将字符ch放入fp所指文件。
    与putchar(char ch)的区别就是,此函数需要指定字符目的文件,而putchar()默认将字符放入stdout。
    也就是说 putchar(char ch) 等价于 putc(ch,stdout);
     
  4. int fclose(FILE* fp);
    关闭fp指定的文件,必要时刷新缓冲区。
    成功返回0,失败返回EOF。当硬盘存储满的时候失败。
  5. 标准文件指针
    stdin,   指向键盘
    stdout, 指向屏幕
    stderr,  指向屏幕
     
  6. fscanf(FILE* fp, const char* format, char* buf);
    从fp所指文件中按照format格式将数据读取到buf中。
    与scanf(const char* format, char* buf);区别就是,fscanf(FILE* fp, const char* format, char* buf)可以指
    定从哪里读取数据。而scanf(const char* format, char* buf);默认从stdin读取数据。
    也就是说scanf(const char* format, char* buf);等价与 fscanf(stdin, const char* format, char* buf);
     
  7. fprintf(FILE* fp, char* buf);
    将buf中的数据写入fp所指文件。
    与printf(char* buf);区别就是,fprintf(FILE* fp, char* buf);可以指定将buf写入哪里,而printf(char* buf);
    默认写入stdout。
    也就是说fprintf(stdout, char* buf); 等价于 printf(char* buf);
     
  8. fgets(char* buf, int stlen, FILE* fp);
    从fp所指文件读取一行或者读取到文件结尾或者读取strlen-1个字符放入buf中。
    当读取到EOF时返回NULL。
     
  9. fputs(char* buf, FILE* fp);
    将buf写入fp所指文件。因为fgets(char* buf, int stlen, FILE* fp);在读取行的时候返回'\n',因此,此函数不会
    添加回车。
     
  10. fseek(FILE* fp, long offset, seek_mod);
    将fp所指文件指针调整到seek_mod规定的位置,并按照offset调整指针。
    seek_mod:
            SEEK_SET,文件开始
            SEEK_CUR,当前指针
            SEEK_END 文件结束
    offset:可正可负
     
  11. ftell(FILE* fp);
    返回fp所指文件指针当前位置

 源码示例:https://github.com/WeiAt931/C.git

转载于:https://www.cnblogs.com/PPWEI/p/9903791.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值