当前位置: 首页 > news >正文

fgetc_fgets_getc_getchar

一、fgetc

 1、从流中读取下一个字符

下一个的意思是紧跟在指针后面的,对于一个刚打开文件的流,指针在文件的最前面,它的下一个字符就是文件的第一个字符。读完第一个字符后,指针就会走到第一个字符后面,这时它的下一个字符就是第二个字符了..........

2、返回

以无符号字符的形式读取字符,然后转换为int返回

如果到了文件结尾,或者遇到错误,就返回EOF

3、示例代码

#include<stdio.h>
int main(int ac,char* av[])
{FILE *fp;int c;fp = fopen(*++av,"r");if( (c=fgetc(fp)) != EOF ){putchar(c);}else{printf("EOF");}printf("\n");fclose(fp);return 0;
}

 演示

二、fgets

1、手册解释

 

 fgets最多读取一份字符,这份字符的字符数量小于size

读取的字符存储在s所指向的缓冲区中

在EOF或换行后停止读取

终止的空字节('\0')存储在缓冲区的最后一个字符之后

fgets在读取成功的时候返回s

fgets在遇到错误或还没有读取到字符就到了文件结尾时,返回NULL

2、演示代码

#include<stdio.h>
#include<stdlib.h>
int main(int ac,char* av[])
{FILE *fp;int size;int count=0;fp=fopen(*++av,"r");size=atoi(*++av);count=atoi(*++av);char buffer[size];while( count > 0 ){if(fgets(buffer,size,fp)!=NULL){fputs(buffer,stdout);}else{printf("NULL\n");}--count;}fclose(fp);return 0;
}

3、演示

(1)所读取的字符数量小于size

size设置为5,但却只读取到4个字符,

(2) 遇到换行后停止读取

第19个字符为换行字符,后面不再读取

(3)遇到换行后停止读取,下次读取时,从下一行开始读

(4)遇到错误或还没有读取到字符就到了文件结尾时返回NULL

三、getc

getc和fgetc是等价的

有个例外???

四、getchar

getchar等价于getc(stdin)

 除去那个例外情况,getchar也应该等价于fgetc(stdin)

五、对比

1、fgets和其他

fgetc、getc、getchar的返回值类型都是int

fgets的返回值类型是char*

2、getchar与fgetc

getchar等价于fgetc(stdin)

3、fgetc和fgets

fgetc等价于fgets(buffer,2,fp)

4、getchar与fgets

getchar等价于fgets(buffer,2,stdin)

http://www.lryc.cn/news/270867.html

相关文章:

  • 12.30_黑马数据结构与算法笔记Java
  • 【电路笔记】-电容分压器
  • 线性代数基础知识
  • Linux Shell 016-文本比较工具diff
  • 八股文打卡day13——计算机网络(13)
  • android studio导入module
  • Prometheus通过consul实现自动服务发现
  • c++11--原子操作,顺序一致性,内存模型
  • 【数据结构】栈和队列(队列的基本操作和基础知识)
  • 设计模式——适配器模式(Adapter Pattern)
  • 测试C#使用OpenCvSharp从摄像头获取图片
  • 【基础】【Python网络爬虫】【12.App抓包】reqable 安装与配置(附大量案例代码)(建议收藏)
  • LabVIEW在电机噪声与振动探测的应用
  • 编码器是什么,以光电编码器为例,说明一下光电编码器的名字由来,结构,原理,特点,用处
  • MySQL:主从复制
  • 【K8S 二进制部署】部署Kurbernetes的网络组件、高可用集群、相关工具
  • Ubuntu 常用命令之 locate 命令用法介绍
  • java中file类常用方法举例说明
  • 机器学习分类模型
  • LaTeX符号大全:打破排版的边界
  • vue3-11
  • 【c语言】飞机大战2
  • 海康visionmaster-渲染控件:渲染控件加载本地图像的方法
  • 【SD】一致性角色 - 同一人物 不同姿势 - 2
  • 摩尔线程S80对于软件的支持
  • 基数排序 RadixSort
  • Maven下载和安装的详细教程
  • 申请虚拟VISA卡Fomepay教程
  • java常见面试题:什么是装箱和拆箱?装箱和拆箱有哪些应用场景
  • 【map】【滑动窗口】【字典树】C++算法:最长合法子字符串的长度