fopen,fgets,fputs,fgetc,fprintf函数

1. fopen();    ------------#inclue <stdio.h>

“r”只读,“r+”读写(光标定义在开头) , "w"只写(如果文件存在则截断为0, 不存在则创建,光标定义在开头),“w+”读和写(如果文件存在则截断为0, 不存在则创建,光标定义在开头),“a”在文件末尾写(如果文件不存在,创建文件),“a+”读和写(读的时候文件定位在开头,写的时候定位在末尾,文件不存在则被创建)

返回文件指针FILE *  , 失败返回NULL并errno

--------------------------------------------------------------------------

2. 关闭 fclose();

1.  刷新缓存区              2. 关闭流, 关闭底层文件描述符

3. fgetc();-------------------------------------------------------------

到达文件结尾或出错返回-1(#define EOF  -1)

FILE *fp   操作系统默认打开了三个文件(关联到三个流)
标准输入       stdin  --- 0
标准输出       stdout --- 1
标准出错       stderr --- 2

int ch = fgetc(stdin);   //ch表示ASCII,stdin表示流
while((ch = fgetc(stdin) == EOF) //表示读到结尾
{};

4. fputc();---------------------------------------

fputc(ch, stdout); //ch为字符的ASCII,然后文件流

用fgetc()和fputc()实现文件拷贝

5. fgets();-------------------------------------------------------------------

把数据存入缓冲区s中,最多读size - 1个,输入的 ‘\n’ 也算读取的字符(ctrl + d也算读到结尾标志),自动到后面添 ‘\0’(第size个) ,遇到 '\n' 读取结束,返回存储的s地址

          ‘\n’ 的位置为s[strlen(s) - 1]   ;  strlen(s) + 1 = sizeof(s)

统计文件的行数:

6. fputs();-------------------------------------------------------------------

fputs(s, stdout);  //输出存的s[]

用fgets()和fputs()实现拷贝

总结:

打开文件     fopen(要打开的文件流, 读写模式)

             成功返回文件流FILE *     |               失败返回NULL并置errno

输入  fgetc(从哪来的文件流) |  fgets(正存入的缓冲区buf,存的大小size,从哪来的文件流)

       返回  int型ASCII                    |          返回   正存入的缓冲区buf地址char *

            失败返回EOF                   |          失败返回 NULL

输出             (已存的ASCII 或字符串地址 ,要输出的文件流fd)

                返回   int型ASCII          |                 非负数

                                          失败返回  EOF

-----------------------------------------------------------------------------------------------------

fprintf(指定文件,.......);

fflush(fp);   //刷新

------------------------------------------------------------------------------------------------------

gg回到开头, g回到最后一行

  • 45
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值