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)每次一行 ...
随机推荐
- Java基础学习:7、作用域
1.在Java中,主要的变量就是属性(成员变量)和局部变量. 2.我们说的局部变量一般是指在成员方法中定义的变量. 3.Java作用域分类: 全局变量:作用域为整个类,该类中的方法可以使用. 局部变量 ...
- 性能测试-ps与vmstat
1.ps命令-获取当前系统的进程状态 ps >ps(process status) 获取帮助: man ps 获取当前系统的进程状态 ps-ef-eF-elv 使用标准语法查看系统上的每个进程 ...
- GIS空间分析和建模复习重点4
27.三维地形分析的方法 常用的有 ·坡度分析 ·坡向分布 ·填挖方分析 ·山体阴影分析 ·通视分析 28.空间分析实际应用 (1)城市应急避难场所是城市防灾减灾规划的重要组成部分,应急避难场所的建设 ...
- vue3文档学习
1.vue的核心功能 1.声明式渲染2.响应性: vue会自动跟踪JavaScript状态并在其发生变化时响应式的更新DOM. 2.渐进式框架 根据不同的需求场景,可以用不同的方式使用vue: 1.无 ...
- 由Restart()想到的
官方文档: Application.Restart Method (System.Windows.Forms) | Microsoft Docs 目录 Restart 探索 结论 启示 Restart ...
- linux查找服务位置
- CSS入门学习笔记
CSS入门学习笔记一.CSS简介1.什么是CSS?2.为什么使用CSS?3.CSS的作用二.CSS语法1.CSS基础语法2.CSS注释语法3.CSS应用方法三.CSS选择器1.元素选择器2.类选择器3 ...
- java post格式发送application/x-www-form-urlencoded
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.http.*; ...
- 蓝桥杯训练赛二-问题 B
字符串的输入输出处理. 输入 第一行是一个正整数N,最大为100.之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000. 输出 先将输入中的前N行字符串(可能含有空格)原样 ...
- list.size() = 1 但显示 All elements are null
https://blog.csdn.net/weixin_43899069/article/details/124668722 if (CollectionUtils.isNotEmpty(list) ...