c语言gets()的用法(c语言gets的用法)

C语言面试经常会考如下一道题,哪里有错误:

#include <stdio.h> 
 
int main() 
{
 char string[100] = {'\0'}; 
 gets(string); 
 
 printf("输入的字符串是:%s \n", string); 
 
 return 0; 
} 

这段C程序可能有问题,问题就在于函数gets()的使用。

gets从标准输入设备读字符串函数,可以无限读取,不会判断上限,以回车结束读取。所以如果输入的字符串超过100个,它也不会做检测,此时就会发生溢出。

可以使用fgets函数来从文件中读取字符串。fgtes函数原型是

char *fgets(char *buf, int bufsize, FILE *stream);

一般的教材都会对这个函数的用法作出解释,这里就不在详述了,以下文字摘用百度百科的解释:百度百科对fgets的解释

从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋’\0’),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。

本文所有内容来自互联网,如有侵权/不实内容请联系我们删除,联系邮箱postusb@foxmail.com

发布者:缘分,转转请注明出处:https://www.bjxdyg.com/life/73705.html

(0)
缘分缘分
上一篇 2022年 12月 8日
下一篇 2022年 12月 8日

相关推荐

  • 电视机哪个牌子好又耐用(电视机哪个牌子好又耐用排名)

    大家好,近期很多朋友对于电视机哪个牌子好又耐用产不是很理解。然后还有一些网友想弄清楚电视机哪个牌子好又耐用排名,泰缘号(www.bjxdyg.com)已经为你找到了相关问题的答案,接下来和我们一起看看吧,希望对大家有所帮助! 大家挑选电视的时候,有两个问题是思考最多的,到底多大尺寸适合我家的客厅或者卧室,到底哪个价位的合适呢? 我们想一想,小的时候的场景,那…

    趣味生活 2022年 11月 14日
    24800
  • 古诗《春雨》杜甫(古诗《春雨》杜甫带拼音)

    唐 杜甫 好雨知时节,当春乃发生。 随风潜入夜,润物细无声。 野径云俱黑,江船火独明。 晓看红湿处,花重锦官城。 诵读:李帅岑 成都市少城小学二年级四班 【如果您有新闻线索,欢迎向我们报料,一经采纳有费用酬谢。报料微信关注:ihxdsb,报料QQ:3386405712】

    2023年 6月 4日
    13400
  • 电脑表格序号怎么自动排序(excel怎么拉出1至100)

    编按: 大家好啊,今天给大家分享在表格中的15种录入序号的技巧,包括月份序列号、带圈数字序号、等差、等比序号等等,相信你一定会用得到,赶紧来看看吧! 下面是案例导图: 案例1:录入阿拉伯数字序号 在表格中输入数字序号相信很多小伙伴都会,让我们来复习一下两种录入序号的技巧。 方法1:输入数字1,按住Ctrl键,鼠标向下拖拽即可生成序列号; 方法2:录入前两个数…

    2023年 4月 1日
    31600
  • 拖欠工资12333会怎么处理(私人老板拖欠工资12333会怎么处理)

    大家好,近期很多朋友对于拖欠工资12333会怎么处理产不是很理解。然后还有一些网友想弄清楚私人老板拖欠工资12333会怎么处理,泰缘号(www.bjxdyg.com)已经为你找到了相关问题的答案,接下来和我们一起看看吧,希望对大家有所帮助! 尽管法律规定,无故拖欠员工工资是非法的,甚至是犯罪的。但是,仍然会遇到一些非常无耻和没有诚信的老板。这些老板认为,这些…

    趣味生活 2022年 12月 1日
    24100
  • 红葱的种植时间和方法(红葱的种植时间和方法怎么留种子)

    大家好,最近还有很多朋友对于红葱的种植时间和方法不是很理解。然后还有一些网友想弄清楚红葱的种植时间和方法怎么留种子,泰缘号网小编已经为你找到了相关问题的答案,接下来和我们一起看看吧,希望对大家有所帮助! 中宁县喊叫水乡红湾新村位于同喊公路旁,土地贫瘠、气候干旱,村民只能靠天吃饭。近年来,该村充分利用当地独特的气候条件和土壤环境,结合村情,大力推进红葱种植,让…

    趣味生活 2023年 2月 15日
    22200

发表回复

登录后才能评论

联系邮箱

postusb@foxmail.com

邮箱咨询: QQ交谈

邮箱:postusb@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息