【C语法学习】3 - fgetc()函数

news2025/2/24 12:06:33

文章目录

  • 1 函数原型
  • 2 参数
  • 3 返回值
  • 4 比较
  • 5 示例
    • 5.1 示例1
    • 5.2 示例2

1 函数原型

fgetc():从指定流stream中读取一个字符,函数原型如下:

int fgetc(FILE *stream)

2 参数

fgetc()函数只有一个参数stream:

  1. 参数stream是一个指向FILE类型结构的指针;stream指定了fgetc()函数要读取的流,可以是文件流,也可以是标准输入流;当是文件流时,stream等于fopen()函数的返回值;当是标准输入流时,stream等于stdin。

3 返回值

fgetc()函数的返回值类型是int型:

  1. 读取成功,返回读取字符的ASCII码值,范围0~127;
  2. 读取失败,返回EOF。

C语言标准描述如下:

1. fgetc and _fgetchar return the character read as an int or return EOF to indicate an error or end of file. 

4 比较

fgetc()函数和getchar()函数的工作原理类似,差异如下:

  1. fgetc()函数从指定流stream中读取字符;
  2. getchar()函数从标准输入流stdin中读取字符;
  3. 将fgetc()函数的参数stream指定为stdin,则fgetc()函数的功能和getchar()函数的功能完全相同。

5 示例

5.1 示例1

从文件1.txt中读取字符,直至文件末尾,代码如下所示:

int main ()
{
   FILE* fp;
   char  ch;

   if ((fp = fopen("1.txt", "r")) == NULL)
   {
      printf("Failed to open file.\n");
      exit(1);
   }

   while (1)
   {
      ch = fgetc(fp);
      if(ch != EOF)
      { 
         putchar(ch);
      }
      else
      {
         break;
      }
   }

   printf("\n");

   fclose(fp);

   return 0;
}

文件内容如下图所示:

在这里插入图片描述

代码运行结果如下图所示:

在这里插入图片描述

5.2 示例2

将stream指定为标准输入流stdin,读取字符串"hello world"并打印,代码如下所示:

int main()
{
   while ((putchar(fgetc(stdin))) != '\n');

   return 0;
}

代码运行结果如下图所示:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1159118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI时代架构师修炼之道:ChatGPT让架构师插上翅膀

文章目录 一、简介二、ChatGPT对架构师工作的帮助1. 快速理解和分析需求2. 提供代码建议和解决方案3. 辅助系统设计和优化4. 提高团队协作效率 三、如何使用ChatGPT提高架构师工作效率1. 了解用户需求和分析问题2. 编码实践和问题解决3. 系统设计和优化建议4. 团队协作和沟通效…

双11一开场,西圣Olite开放式耳机就售罄!全网卖断货!

今年双11预售开始,西圣Olite首个双十一,就已成为爆款,登录各大电商购物平台APP,亦显示西圣Olite开放式耳机已售罄。 如今的耳机圈中,开放式耳机因其独特的优势备受青睐,而国内知名专注于高端配置平价价格的…

从用户角度出发,如何优化大数据可视化体验|北京蓝蓝UI设计公司

作者:蓝蓝设计-鹤鹤 大数据已经成为人们探索世界的新工具。但是,对于普通用户而言,大数据往往比较抽象和难以理解,因此,大数据可视化作为一种非常有效的工具工具被广泛应用。然而,在实际应用中&#xff0c…

集合体系结构 Collection遍历方式 迭代器遍历 增强for遍历 增强for细节 Lambda表达式遍历

目录 集合体系结构Collection遍历方式迭代器遍历总结 增强for遍历增强for细节 Lambda表达式遍历总结 集合体系结构 list系列集合:添加的元素式有序,可重复,有索引的 这里的有序式存取的格式式有序的,怎么存入怎么取出 set系列集合:添加的元素式无序,不重复,无索引 不重复:表示集…

HQChart实战教程67-worker批量计算股票指标

HQChart实战教程67-worker批量计算股票指标 什么是Worker批量指标计算示例地址步骤1. 创建一个后台工作线程类2. 发送指标计算任务3. 接收计算结果数据对接 完整源码demo_workerthread_sina.htmlhqchart_worker_sina.js HQChart插件源码地址 什么是Worker Worker 接口是 Web W…

DDoS类型攻击对企业造成的危害

超级科技实验室的一项研究发现,每十家企业中,有四家(39%)企业没有做好准备应对DDoS攻击,保护自身安全。且不了解应对这类攻击最有效的保护手段是什么。 由于缺乏相关安全知识和保护,使得企业面临巨大的风险。 当黑客发动DDoS攻击…

PS新手教程-如何使用PS把图片置入另一张图片里

如何使用PS把图片置入另一张图片里?给大家介绍如何使用PS把图片置入另一张图片里,一起来看看吧。 1.打开ps软件,按快捷键CtrlO键,弹出打开对话框,选中一张图片,单击“打开”按钮。 2.在菜单栏“文件”中&a…

ubuntu(18.04)中架设HiGlass docker镜像服务,已尝试mcool、bedpe、wig格式文件

前言 使用到的软件 docker 文档 : https://www.docker.com/ HiGlass 文档:http://docs.higlass.io/higlass_docker.html#running-locally https://github.com/higlass/higlass-dockerhiglass-docker 地址:https://github.com/higla…

模型应用系实习生-模型训练笔记(更新至线性回归、Ridge回归、Lasso回归、Elastic Net回归、决策树回归、梯度提升树回归和随机森林回归)

sklearn机械学习模型步骤以及模型 一、训练准备(x_train, x_test, y_train, y_test)1.1 导包1.2 数据要求1.21 导入数据1.22 数据类型查看检测以及转换1.22 划分数据 二、回归2.1 线性回归2.2 随机森林回归2.3 GradientBoostingRegressor梯度提升树回归2…

工业4G路由器桥接多网络,提升工业环境网络覆盖

一款专为工业环境应用所设计的物联网通讯设备“工业4G路由器”,它具有多种功能和特性。其中之一就是桥接功能,在工业领域中被广泛应用并起着重要的通信作用。 桥接功能是指工业4G路由器通过无线网络的方式,为不同的工业设备提供网络并将其连…

基于人工电场算法的无人机航迹规划-附代码

基于人工电场算法的无人机航迹规划 文章目录 基于人工电场算法的无人机航迹规划1.人工电场搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用人工电场算法来优化无人机航迹规划。 …

解决【spring boot】Process finished with exit code 0的问题

文章目录 1. 复现错误2. 分析错误3. 解决问题 1. 复现错误 今天从https://start.spring.io下载配置好的spring boot项目: 启动后却报出如下错误: 即Process finished with exit code 0 2. 分析错误 Process finished with exit code 0翻译成中文进程已完…

注册中心ZK、nameServer、eureka、Nacos介绍与对比

前言 注册中心的由来 微服务架构是存在着很多跨服务调用,每个服务都存在着多个节点,如果有多个提供者和消费者,当提供者增加/减少或者消费者增加/减少,双方都需要感知发现。所以诞生了注册中心这个中间件。 市面上有很多注册中心,如 Zookeeper、NameServer、Eureka、Na…

SaaS可配置性设计要点

1 引言 考虑到系统SaaS需求,就成熟的SaaS应用而言,元数据服务是为用户提供定制和配置应用、满足其特定需求的主要手段。 可配置能力主要反映在这4个方面:1 程序外观;2 工作流程与业务规则;3 数据模型&#xff1b…

docker 存储目录迁移

参考:【Docker专题】WSL镜像包盘符迁移详细笔记 - 掘金 docker迁移 一 默认目录 Windows版本(Windows 10 wsl 2)docker 默认程序安装到c盘,数据存放于 C:\Users\当前用户名\AppData\Local\Docker\wsl\data\ext4.vhdx 这样会导致…

多机多卡分布式训练

1. 环境搭建 分布式训练框架:acceleratedeepspeedpdsh(可有可无)基础环境:cuda、显卡驱动、pytorch 1.1 安装相关包 cuda安装:参考官网安装步骤 wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-…

python raise语句的两种用法

python raise语句的两种用法 1、主动抛出异常的方法是使用 raise 语句: raise ValueError()2、可以同时指明错误原因: raise ValueError("输入值不符合要求")**3、这个函数没有处理可能出错的情况。**比如函数的age参数不能随意取值&#x…

呵护笔记本屏幕,同时获得更全方位的隐私保护

之前看到很多人都在给手机贴防窥膜,但是我试过之后觉得效果并不好。其实,防窥膜这个东西用在笔记本上会更实用一些。特别是那些经常在公共场所办公的朋友,比如我。最近我发现了一款威宝的防窥膜,质量非常靠谱。如果你也有同样的需…

天体学爱好者基础知识-太阳系//未完待续,业余者的学习

难过的时候,仰望天空吧,人类有时候,做的事情真的太愚昧且无聊了,渺小的尘埃,也可以飘际宇宙。 太阳系-八大行星 卫星围绕着恒星公转。行星必须围绕着恒星公转。 什么是行星?行星和恒星、卫星有什么区别&am…

qt5使用QWebEngineView崩溃的问题

在使用QWebEngineView加载崩溃 需要把下图的文件放入exe文件中