当前位置: 首页 > 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)

相关文章:

fgetc_fgets_getc_getchar

一、fgetc 1、从流中读取下一个字符 下一个的意思是紧跟在指针后面的&#xff0c;对于一个刚打开文件的流&#xff0c;指针在文件的最前面&#xff0c;它的下一个字符就是文件的第一个字符。读完第一个字符后&#xff0c;指针就会走到第一个字符后面&#xff0c;这时它的下一个…...

12.30_黑马数据结构与算法笔记Java

目录 320 全排列无重复 Leetcode47 321 组合 Leetcode77 分析 322 组合 Leetcode77 实现 323 组合 Leetcode77 剪枝 324 组合之和 Leetcode 39 325 组合之和 Leetcode 40 326 组合之和 Leetcode 216 327 N皇后 Leetcode51-1 328 N皇后 Leetcode51-2 329 解数独 Leetco…...

【电路笔记】-电容分压器

电容分压器 文章目录 电容分压器1、概述2、串联电容器的电压分布3、电容分压器示例14、电容分压器示例2 分压器电路可以由电抗元件构成&#xff0c;就像由固定值电阻器构成一样容易。 1、概述 但就像电阻电路一样&#xff0c;电容分压器网络即使使用属于电抗元件的电容器&…...

线性代数基础知识

计算机视觉一些算法中常会用到线性代数的一些知识&#xff0c;为了便于理解和快速回忆&#xff0c;博主这边对常用的一些知识点做下整理&#xff0c;主要来源于如下这本书籍。 1. 矩阵不仅仅是数字排列而已&#xff0c;不然也不会有那么大精力研究它。其可以表示一种映射 关于…...

Linux Shell 016-文本比较工具diff

Linux Shell 016-文本比较工具diff 本节关键字&#xff1a;Linux、Bash Shell、文本比较 相关指令&#xff1a;diff、cat、patch diff介绍 diff工具用于逐行比较文件的不同&#xff0c;如果指定要比较目录&#xff0c;则diff会比较目录中相同文件名的文件&#xff0c;但不会…...

八股文打卡day13——计算机网络(13)

面试题&#xff1a;DNS是什么&#xff1f;DNS的查询过程是什么&#xff1f; 我的回答&#xff1a; 我来讲一下我对DNS的理解 DNS是域名系统&#xff0c;它是一个域名和IP地址相互映射的数据库。通过DNS&#xff0c;可以将我们浏览器中输入的域名&#xff0c;例如&#xff1a;…...

android studio导入module

在Android Studio中导入一个Module&#xff08;模块&#xff09;&#xff0c;可以按照以下步骤进行操作&#xff1a; 打开Android Studio&#xff0c;并打开你的项目。在菜单栏中&#xff0c;点击 "File"&#xff08;文件&#xff09;-> "New"&#xf…...

Prometheus通过consul实现自动服务发现

环境,软件准备 本次演示环境&#xff0c;我是在虚拟机上安装 Linux 系统来执行操作&#xff0c;以下是安装的软件及版本&#xff1a; System: CentOS Linux release 7.6Docker: 24.0.5Prometheus: v2.37.6Consul: 1.6.1 注意&#xff1a;这里为了方便启动 Prometheus、Consul服…...

c++11--原子操作,顺序一致性,内存模型

1.原子操作 多线程下为了实现对临界区资源的互斥访问&#xff0c;最普遍的方式是使用互斥锁保护临界区。 然而&#xff0c;如果临界区资源仅仅是数值类型时&#xff0c;对这些类型c提供了原子类型&#xff0c;通过使用原子类型可以更简洁的获得互斥保护的支持。 (1). 一个实例…...

【数据结构】栈和队列(队列的基本操作和基础知识)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​ 目录 前言 队列 队列的概念和结构 队列的…...

设计模式——适配器模式(Adapter Pattern)

概述 适配器模式可以将一个类的接口和另一个类的接口匹配起来&#xff0c;而无须修改原来的适配者接口和抽象目标类接口。适配器模式(Adapter Pattern)&#xff1a;将一个接口转换成客户希望的另一个接口&#xff0c;使接口不兼容的那些类可以一起工作&#xff0c;其别名为包装…...

测试C#使用OpenCvSharp从摄像头获取图片

OpenCvSharp也支持获取摄像头数据&#xff0c;不同于之前测试AForge时使用AForge控件显示摄像头数据流并从中截图图片&#xff0c;OpenCvSharp中显示摄像头数据流需要周期性地从摄像头中截取图片并显示在指定控件中。本文学习C#使用OpenCvSharp从摄像头获取图片的基本方式。  …...

【基础】【Python网络爬虫】【12.App抓包】reqable 安装与配置(附大量案例代码)(建议收藏)

Python网络爬虫基础 App抓包1. App爬虫原理2. reqable 的安装与配置reqable 安装教程reqable 的配置 3. 模拟器的安装与配置夜神模拟器的安装夜神模拟器的配置配置代理配置证书 4. 内联调试及注意事项软件启动顺开启抓包功reqable面板功列表部件功能列表数据快捷操作栏 夜神模拟…...

LabVIEW在电机噪声与振动探测的应用

LabVIEW在电机噪声与振动探测的应用 硬件部分是电机噪声和振动测试分析系统的基础&#xff0c;主要由三大核心组件构成&#xff1a;高灵敏度振动传感器、先进的信号调理电路和高性能数据采集卡。这些设备协同工作&#xff0c;确保了从电机捕获的噪声和振动信号的准确性和可靠性…...

编码器是什么,以光电编码器为例,说明一下光电编码器的名字由来,结构,原理,特点,用处

问题描述&#xff1a; 问题解答&#xff1a; 定义&#xff1a;编码器是一种测量角度、位置、速度等物理量的传感器&#xff0c;它可以将物理量转换成电信号&#xff0c;以便计算机或控制系统进行处理和控制。编码器通常由码盘和光电转换器组成&#xff0c;码盘上刻有若干条码道…...

MySQL:主从复制

准备两台服务器&#xff1a;安装好mysql mysql1&#xff1a;192.168.2.222 master mysql2&#xff1a;192.168.2.226 slave 1、主从服务器分别作以下 1.1、版本一致 1.2、初始化表&#xff0c;并在后台启动mysql 1.3、修改root的密码 2、修改主服务器master #vi /etc/my…...

【K8S 二进制部署】部署Kurbernetes的网络组件、高可用集群、相关工具

目录 一、K8S的网络类型&#xff1a; 1、K8S中的通信模式&#xff1a; 1.1、、pod内部之间容器与容器之间的通信 1.2、同一个node节点之内&#xff0c;不同pod之间的通信方式&#xff1a; 1.3、不同node节点上的pod之间是如何通信的呢&#xff1f; 2、网络插件一&#xff…...

Ubuntu 常用命令之 locate 命令用法介绍

🔥Linux/Ubuntu 常用命令归类整理 locate命令是在Ubuntu系统下用于查找文件或目录的命令。它使用一个预先构建的数据库(通常由updatedb命令创建)来查找文件或目录,因此它的查找速度非常快。 plocate 安装 locate 不是 Ubuntu 系统的原生命令/功能,要想在 Ubuntu 系统中…...

java中file类常用方法举例说明

java中file类常用方法举例说明 当使用 java.io.File 类时&#xff0c;以下是一些常用方法的举例说明&#xff1a; 创建文件或目录&#xff1a; // 使用路径名创建File实例 File file new File("C:\\Users\\UserName\\Documents\\example.txt");// 使用父路径和子路…...

机器学习分类模型

机器学习常见分类模型及特点 机器学习常见分类模型优缺点 决策树模型 决策树&#xff08;Decision Tree&#xff09;是一类常见的机器学习方法&#xff0c;可应用于分类与回归任务&#xff0c;这里主要讨论分类决策树。决策树是基于树结构来进行决策的。下图是使用决策树来决定…...

构建安全通讯系统:从加密原理到工程实践的全方位指南

1. 项目概述&#xff1a;为什么我们需要一个“安全通讯系统”&#xff1f;在当今这个信息高度互联的时代&#xff0c;通讯早已渗透到我们工作和生活的每一个角落。从日常的即时消息、邮件往来&#xff0c;到企业内部的机密文件传输、远程会议&#xff0c;再到物联网设备间的数据…...

PCB线宽与电流关系详解:从原理到设计避坑指南

1. 项目概述&#xff1a;从一次烧板事故说起去年&#xff0c;我手头一个给电机驱动的小板子又冒烟了。排查了半天&#xff0c;发现不是芯片烧了&#xff0c;也不是电源接反了&#xff0c;问题出在一条给电机供电的电源走线上。那条线在板子上看着挺“粗壮”&#xff0c;但实际一…...

Wand-Enhancer:三步解锁WeMod Pro功能的终极免费方案

Wand-Enhancer&#xff1a;三步解锁WeMod Pro功能的终极免费方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的订阅费用而烦恼吗&…...

无显式ID推荐系统:从冷启动到跨域泛化的核心技术解析

1. 项目概述&#xff1a;当推荐系统“看不见”用户与物品在推荐系统这个领域里干了十几年&#xff0c;我见过太多模型把“用户ID”和“物品ID”当作理所当然的输入。这就像我们认识一个人&#xff0c;首先记住的是他的名字和长相。传统的协同过滤&#xff08;Collaborative Fil…...

3分钟解锁B站评论区的“读心术“:揭秘用户真实身份的完整指南

3分钟解锁B站评论区的"读心术"&#xff1a;揭秘用户真实身份的完整指南 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分&#xff0c;支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-comment-c…...

GroundingDINO SwinT与SwinB配置实战对比:零样本目标检测的架构选择策略

GroundingDINO SwinT与SwinB配置实战对比&#xff1a;零样本目标检测的架构选择策略 【免费下载链接】GroundingDINO [ECCV 2024] Official implementation of the paper "Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection"…...

基于RT-Thread与N32G457的三通道UART透明监控网关设计与实现

1. 项目概述与核心需求解析在嵌入式开发&#xff0c;特别是涉及工业控制、智能硬件或者多设备联调的现场&#xff0c;我们经常会遇到一个非常实际的痛点&#xff1a;如何在不干扰原有通信链路的前提下&#xff0c;实时监控两台设备之间的串口数据交互。无论是调试新的通信协议&…...

CentOS 7/8 服务器根目录爆满?别慌,用LVM无损调整home空间给root(保姆级避坑指南)

CentOS服务器根目录空间告急&#xff1f;LVM动态扩容实战指南 凌晨三点&#xff0c;服务器监控突然狂闪警报——根目录剩余空间不足5%&#xff01;这种场景对于运维人员来说无异于一场噩梦。当关键业务系统因日志无法写入而濒临崩溃时&#xff0c;传统的重装系统或数据迁移方案…...

C#集成AI对话:开源库ha.openclaw.conversation实战指南

1. 项目概述&#xff1a;一个面向对话式AI的C#开源库最近在折腾一个需要集成智能对话能力的桌面应用&#xff0c;后台服务是用C#写的。大家都知道&#xff0c;现在搞AI对话&#xff0c;主流玩法是调用OpenAI、Claude这些大模型的API&#xff0c;或者用一些开源的本地模型。但真…...

告别依赖地狱:手把手教你用Docker一键部署带GUI的Kettle(避坑libwebkitgtk)

告别依赖地狱&#xff1a;用Docker容器化部署Kettle的终极实践指南 每次在Linux服务器上安装Kettle时&#xff0c;你是否也经历过这样的噩梦&#xff1f;先是提示缺少libwebkitgtk库&#xff0c;然后发现yum仓库里根本没有这个包&#xff0c;接着开始疯狂搜索各种第三方源&…...