以上四个函数都是读取外部输入的函数。可以使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的更多相关文章

  1. PHP 文件读取 fread、fgets、fgetc、file_get_contents 与 file 函数

    fread().fgets().fgetc().file_get_contents() 与 file() 函数用于从文件中读取内容. fread() fread() 函数用于读取文件(可安全用于二进制 ...

  2. PHP读取文件函数fread,fgets,fgetc,file_get_contents和file函数的使用总结

    fread().fgets().fgetc().file_get_contents() 与 file() 函数用于从文件中读取内容. 1.fread() fread()函数用于读取文件(可安全用于二进 ...

  3. 009PHP文件处理——文件处理 file_get_contents file_put_contents fgetc fgets fgetss

    <?php /** * 文件处理 file_get_contents file_put_contents fgetc fgets fgetss */ //fgetc() 传入文件操作句柄.每次获 ...

  4. fopen\fread\fwrite\fscanf\fprintf\fseek\feof\rewind\fgets\fputc等系列函数使用总结

    转载自:http://blog.csdn.net/xidianzhimeng/article/details/23541289 1 fopen 函数原型:FILE * fopen(const char ...

  5. C语言的基本输入与输出函数(全解)

    C语言的基本输入与输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以 ...

  6. 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 ...

  7. UNIX环境高级编程---标准I/O库

    前言:我想大家学习C语言接触过的第一个函数应该是printf,但是我们真正理解它了吗?最近看Linux以及网络编程这块,我觉得I/O这块很难理解.以前从来没认识到Unix I/O和C标准库I/O函数压 ...

  8. linux 标准I/O (一)

    在前面<UNIX环境高级编程----文件描述符浅析>一文中所讲的I/O函数都是针对文件描述符.而对于标准I/O库,它们的操作都是围绕流来进行的.当用标准I/O库打开或创建一个文件时,我们已 ...

  9. 标准I/O库

    前言:我想大家学习C语言接触过的第一个函数应该是printf,但是我们真正理解它了吗?最近看Linux以及网络编程这块,我觉得I/O这块很难理解.以前从来没认识到Unix I/O和C标准库I/O函数压 ...

  10. APUE(5)---标准I/O库 (2)

    六.读和写流 一旦打开了流,则可在3种不同类型的非格式化I/O中进行选择,对其进行读.写操作:1)每次一个字符的I/O,一次读或写一个字符,如果刘时代缓冲的,则标准I/O函数处理所有缓冲:2)每次一行 ...

随机推荐

  1. fetch,axios简介与语法

    fetch简介&语法 留心:像之前的XMLHttpRequest 但并不真的是,而是代替的 #概念:fetch是ecma组织基于promise开发http api ,用来代替xhr  #语法: ...

  2. 改变Jupyter notebook默认浏览器

    1. prompt 输入命令"jupyter notebook --generate-config" 找到jupyter_notebook_config.py所在位置(可能在&qu ...

  3. [转]有限状态机FSM(finite state machine) 一

    有限状态机FSM(finite state machine) 一 有限状态机又称有限自动状态机,它拥有有限数量的状态,每个状态代表不同的意义,每个状态可以切换到 零-多 个状态.任意时刻状态机有且只能 ...

  4. verilog 和system verilog 文件操作

    1. 文件操作 Verilog具有系统任务和功能,可以打开文件.将值输出到文件.从文件中读取值并加 载到其他变量和关闭文件. 1.1 Verilog文件操作 1.1.1 打开和关闭文件 module ...

  5. 230222 Radiated Immunity Pre-compliance Test

    Hello everyone, welcome to Mach1 Design EMC channel. Last time we talked about how to set up a radia ...

  6. Dell CS24-SC 服务器详情

    详情介绍: https://www.viziotech.com/servers/58-dell-cs24-sc-dual-xeon-quad-core-l5420-25ghz-16gb-4x146gb ...

  7. lua-路径加载lua文件-函数返回值,访问lua文件中的变量

    lua文件如下: print("ddhdhh")function login(username,pswd)if username =="ms" and pswd ...

  8. https原理(五)双向实践(https代理)

    本文为了证明: 1 双向可以通过直接转发tcp的中间人代理网关 2 双向可以防止明文中间人 开始.(服务端need,使用myhost.com-pub-capub.jks,myhost.com-pub- ...

  9. matlab求解器的选择

    可以选择的变步长求解器有:ode45,ode23,ode113,odel5s,ode23s和discret.缺省情况下,具有状态的系统用的是ode45:没有状态的系统用的是discrete. 1)od ...

  10. kafka监控系统kafka eagle安装和使用

    一.kafka eagle介绍 kafka eagle 是一款由国内公司开源的Kafka集群监控系统,可以用来监视kafka集群的broker状态.Topic信息.IO.内存.consumer线程.偏 ...