c语言gets是什么意思

提问者:用户pgLmiH94 更新时间:2024-12-29 09:17:31 阅读时间: 2分钟

最佳答案

gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。从stdio流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。返回值编辑读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。注意本函数可以无限读取,不会判断上限,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值。这个事实导致gets函数只适用于玩具程序,为了避免这种情况,我们可以用fgets(stdin) (fgets实际上可以读取标准输入(即大多数情况下的键盘输入),具体参阅fgets词条)来替换gets()。在V7的手册(1979年)中说明:为了向后兼容,gets删除换行符,gets并不将换行符存入缓冲区。由于可以无限读取,所以在2011年12月,ANSI 采纳了 ISO/IEC 9899:2011 标准,标准中删除了 gets()函数,使用一个新的更安全的函数gets_s()替代(具体用法看下面示例)。#include //这个头文件包含gets()函数,这个函数在ISO/IEC 9899 2011(C11)标准中被移除int main(void){char str1[5]; //不要char*p,然后gets(p),这是错误的,因为p没有指向有效的内存,它可能指向任何非法地址 // 地方的未知大小的内存块,这样以来,就可能修改了不属于本程序的内存的内容gets(str1);printf("%s\n", str1);return 0;}#include //gets_s()用法#define CH 20int main(void){char ch[CH];printf("请输入你的名字:\n");gets_s(ch,CH); //这里不能用gets_s(ch);printf("这是你的名字:%s\n", ch);return 0;}

大家都在看
发布时间:2024-12-16
想自由行去越南旅游又不懂语言要想顺利完成,仅靠决心和勇气是不够的,特别是长线路旅行,出国前的准备工作一定要很充分,主要是几个方面:一、尽可能的收集各种相关资料,资料来源可以是网上的旅行游记、攻略,相关国家的中文旅游书,或者请教去过的人等。资。
发布时间:2024-12-16
打招呼用“xin chào”,跟汉语“洗澡”的读音差不多;再见时说“tm bit”跟汉语的“大便”读音相似;早上说你好晚上说再见,简单的可以记忆为“早上洗澡晚上大便”;“谢谢”,越南语是“cm n”跟汉语的“感恩”读音相似;越南语中“姑娘”。
发布时间:2024-12-15
应该是孔明灯。
发布时间:2024-12-14
程序发到你的qq邮箱了 请查收。
发布时间:2024-12-14
你好! 没有完全理解你的描述,私信联系,说明具体程序要求。
发布时间:2024-12-14
烂袜子改背心 —— 小人得志(之)八月十五桂花香 —— 花好月圆黄鼠狼等食 —— 见机(鸡)行事黄忠叫阵 —— 不服老龙须菜炒韭菜 —— 乱七八糟白骨精开口 —— 不讲人话孔明大摆空城计 —— 化险为夷瞎子戴眼镜 —— 装饰正月十五云遮月。
发布时间:2024-11-27
gets(str);在C语言中是从键盘上接收一个字符串,保存在str为首地址的字符串内存空间,以回车做为结束符。
发布时间:2024-11-27
gets主要是用于输入一个字符串,与数组一起搭配。比如:char a[50]; gets(a);这样就可以连续输入小于或等50个字符了。而scanf通常只能输入一个变量,而且它会与一些格式字符一起使用。比如:char ch; int b;。
发布时间:2024-11-27
gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。注意因为本函数可以无限读取,易发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就。
发布时间:2024-12-14 05:32
基本与现在的广深准高速铁路平行,从广州南站引出后经番禺,东莞,从深圳龙岗的深圳北站接入香港段,香港九龙可能要修建新火车站来和高铁对接~。
发布时间:2024-11-11 12:01
1、基儿2、浦泽3、伯儿4、元德5、小荷6、丰宝7、中中8、小艳9、英毅10、小思11、琪琪12、阳宝13、语珍14、小朔15、苹果16、阿蓝17、玥儿18、球球19、。
发布时间:2024-11-01 20:16
生活中经常会有人长智齿,而且各个年龄层的人都有可能会长智齿,智齿虽然不是什么大问题,但是会给患者的生活造成很大的危害,比如会出现疼痛感,大部分患者长智齿都需。
发布时间:2024-12-11 02:33
成都地铁2号线途径的站点有:龙泉驿、龙平路、书房、界牌、连山坡、大面铺、成都行政学院、洪河、惠王陵、成渝立交、成都东客站、塔子山公园、东大路、牛市口、牛王庙、东门大桥、春熙路、天府广场、人民公园、通惠门、中医大省医院、白果汉、蜀汉路东、一品。
发布时间:2024-11-01 22:39
很多孕妈的母乳里都存在巨细胞病毒,而巨细胞病毒是一种由人体内的疱疹病毒引起的,它的主要表现是一种dna病毒,这种病毒多常见于女性。而母乳的健康状况直接影响着。
发布时间:2024-12-11 13:30
公交线路:轨道交通2号线 → 轨道交通4号线,全程约18.9公里1、从汉口火车站乘坐轨回道交通答2号线,经过10站, 到达洪山广场站2、乘坐轨道交通4号线,经过5站, 到达复兴路站3、步行约280米,到达湖北省人民医院公交线路:轨道交通2号。
发布时间:2024-12-11 01:00
西安地铁1号线西起西咸新区沣河森林公园站,途经未央区、莲湖区、新城区,终版点止于灞权桥区纺织城站,将西咸新区及西安市东西中轴线上的三桥、玉祥门、洒金桥、五路口、康复路、长乐路等商圈紧密联系起来。截至2020年11月20日,西安地铁1号线全长。
发布时间:2024-10-29 19:34
明教强大的追击能力,快速的攻击速度,还有飘逸的技能,明教是全部门派里面,闪避最厉害的,可以很容易就miss掉玩家的技能,和化解玩家带来的伤害,在竞技场的时候,可以隐身在附近,等待时机出击攻击对手,是单挑极强的门派,在竞技场里,基本没几个人。
发布时间:2024-12-10 22:20
近江口村。
发布时间:2024-12-14 02:11
广州南站去东莞可以到广州南客运站坐大巴。广州南客运站距离南火车站200米左右。广州南站去东莞方向自驾路线:1、从起点出发,沿石浦大道南行驶573米,左转进入石兴大道南2、沿石兴大道南行驶186米,右前转3、向东北行驶75米,右前转进入石洲西。