gets,fgets,getchar,fgetc
以上四个函数都是读取外部输入的函数。可以使stdin,也可以是文件。以下都是在C语言中的应用
关于gets和fgets都能够读取一行,一行结束的标志是“回车”。都有弊端gets(s),其中s为字符型数组,假设char s[3];那么即使我输入hello,s中仍然能够盛放得下,这是不对的!因为C语言不禁止程序读写“非法内存”。
fgets也是如此,假设char s[3];文件描述符fin指向的文件内容为hello。fgets(s,6,fin);s虽然只有三个字节空间,但仍然能盛放hello和最后的字符串结束标志'\0'。这也是不对的!需要注意的是,要想读取完整的hello,fgets中的第二个参数需要填6,而不是5,因为这个函数会自动为字符串预留一个'\0',如果参数为5,读取返回值就为hell\0。
以上两者返回值均为读取到的字符串,好处就在于他们对空格,制表符不敏感(这一点强于scanf)。
关于getchar,用法c=getchar();默认从标准输入中读取一个输入的字符。
关于fgetc,用法和getchar类似,不过可选输入来源是fgetc(stdin)(标准输入),fgetc(fin)(文件输入)。返回值仍然是读取的字符。如果读到文件末尾也就是EOF,返回值为-1
gets,fgets,getchar,fgetc的更多相关文章
- PHP 文件读取 fread、fgets、fgetc、file_get_contents 与 file 函数
fread().fgets().fgetc().file_get_contents() 与 file() 函数用于从文件中读取内容. fread() fread() 函数用于读取文件(可安全用于二进制 ...
- PHP读取文件函数fread,fgets,fgetc,file_get_contents和file函数的使用总结
fread().fgets().fgetc().file_get_contents() 与 file() 函数用于从文件中读取内容. 1.fread() fread()函数用于读取文件(可安全用于二进 ...
- 009PHP文件处理——文件处理 file_get_contents file_put_contents fgetc fgets fgetss
<?php /** * 文件处理 file_get_contents file_put_contents fgetc fgets fgetss */ //fgetc() 传入文件操作句柄.每次获 ...
- fopen\fread\fwrite\fscanf\fprintf\fseek\feof\rewind\fgets\fputc等系列函数使用总结
转载自:http://blog.csdn.net/xidianzhimeng/article/details/23541289 1 fopen 函数原型:FILE * fopen(const char ...
- C语言的基本输入与输出函数(全解)
C语言的基本输入与输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以 ...
- The difference between macro and function I/Ofunction comparision(from c and pointer )
macro is typeless and execute faster than funtion ,becaus of the overhead of calling and returnning ...
- UNIX环境高级编程---标准I/O库
前言:我想大家学习C语言接触过的第一个函数应该是printf,但是我们真正理解它了吗?最近看Linux以及网络编程这块,我觉得I/O这块很难理解.以前从来没认识到Unix I/O和C标准库I/O函数压 ...
- linux 标准I/O (一)
在前面<UNIX环境高级编程----文件描述符浅析>一文中所讲的I/O函数都是针对文件描述符.而对于标准I/O库,它们的操作都是围绕流来进行的.当用标准I/O库打开或创建一个文件时,我们已 ...
- 标准I/O库
前言:我想大家学习C语言接触过的第一个函数应该是printf,但是我们真正理解它了吗?最近看Linux以及网络编程这块,我觉得I/O这块很难理解.以前从来没认识到Unix I/O和C标准库I/O函数压 ...
- APUE(5)---标准I/O库 (2)
六.读和写流 一旦打开了流,则可在3种不同类型的非格式化I/O中进行选择,对其进行读.写操作:1)每次一个字符的I/O,一次读或写一个字符,如果刘时代缓冲的,则标准I/O函数处理所有缓冲:2)每次一行 ...
随机推荐
- anaconda新建的虚拟环境更改默认位置
anaconda虚拟环境默认安装位置 https://blog.csdn.net/weixin_48373309/article/details/127830801 vscode中切换路径问题 在vs ...
- Android 杂项
1. String to InputStream new ByteArrayInputStream(str.getBytes());
- Linux shell 获取路径、文件名、文件后缀
以 make 文件为例: file=/usr/bin/make [root@CentOs7]# echo ${file%*/} /usr/bin/make [root@CentOs7]# echo $ ...
- vue3文档学习
1.vue的核心功能 1.声明式渲染2.响应性: vue会自动跟踪JavaScript状态并在其发生变化时响应式的更新DOM. 2.渐进式框架 根据不同的需求场景,可以用不同的方式使用vue: 1.无 ...
- SMW0 对应 MIME TYPE 无法包进请求上传
SAP Notes - SAP for Me 2228060 - SMW0 Key entry for table MIMETYPES may only be generic Resolution S ...
- ucocIII野火
5.1裸机系统 5.1.1 轮询系统 轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情.轮询系统是一种非常简单的软件结构,通常只适用于那些只需 ...
- spark之依赖关系
spark的每个RDD都会记录从创建到当前算子的依赖(血缘关系),当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区 --- toDebugString 方法查看 On ...
- GoogleAdMob
写在最开始==================>一定要确定好中介和GoogleAdMob的版本对应关系 由于GoogleAdMob对接的官方文档是叫你去下载旧版的SDK,然后就很容易就弄混了版本 ...
- office2016word打开总是提示安全模式
突然打开word和Excel提示是否使用安全模式,如果选择否就自动退出office,选择是进入后,编辑一下也会自己退出,非常郁闷. 之后上网查看,尝试了许多: 1.win+R 运行%appdata%\ ...
- springboot 集成poi导出word(一)
使用ruoyi-前后端分离版本,根据word模板导出,包含表格和图片. 一.创建模板 列表使用{{}},文本使用[] 二.引入依赖 <!-- excel工具 --> <depende ...