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)每次一行 ...
随机推荐
- Day_1(并查集朋友圈、字典序排序)
1.并查集 朋友圈:找出最多的一个圈子内有多少用户! id[](表示当前节点的父节点) nodeNum[] (表示当前节点为根的那一组节点数量) import java.util.Scanner; / ...
- springcloud(二) - 服务调用Feign&openFeign
功能介绍:动态代理的方式,简化请求其他服务的开发成本,更好得对请求地址组装.接受返回信息.返回参数解析等 Feign和OpenFeign区别: OpenFeign实现了Feign的基础功能,同时支持 ...
- 计算机科学导论-第三版-学习笔记-chapter1-绪论
小测验的网站找不到,小程序也找不到,这两个部分的习题就不做了. Cengage Learning - Foundations of Computer Science这上面有部分答案.这里用斜体标出.我 ...
- js常用代码整理2
引用js <script type="text/javascript" src="js/jquery-1.11.2.min.js"></scr ...
- unity Android路径的相关部分代码
using System; using System.Collections; using System.Collections.Generic; using System.IO; using Uni ...
- LM393双电压比较器集成电路引脚图及功能_工作原理及应用电路
lm393简介 LM393 是双电压比较器集成电路.输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上,不受 Vcc端电压值的限制.此输出能作为一个简单的对地SPS开路(当不用负载电阻没被运用) ...
- IIS管理器中远程管理其它web服务器上的IIS站点
IIS管理器中远程管理其它web服务器上的IIS站点 当生产环境服务器和部署项目过多时, 就需要单独一台机器来统一管理这些项目, 部署配置如下: 环境:项目服务器5台,运维服务器1台 应用:由运维服务 ...
- CUDA的新功能
CUDA 9: 配合Volta架构推出: 1. 新的多线程编程范式.Cooperative Groups 2. 优化算法库 CUDA10: 配合Turing架构推出. 1. 新增了对TensorCor ...
- Linux 使用Nginx部署web项目
https://blog.csdn.net/weixin_43233914/article/details/126483734
- 论文笔记:Symbolic Execution for Software Testing: Three Decades Later
论文笔记:Symbolic Execution for Software Testing: Three Decades Later 作者 Cristian Cadar 是英国帝国理工学院SRG(Sof ...