考虑到程序安全性和健壮性,建议用fgets()来代替gets()。 如果你在GCC中使用gets(),编译无法通过,会提示: the 'gets' function is dangerous and shout not be used.
如果不能正确使用gets()函数,带来的危害是很大的,就如上面我们看到的,输入字符串的长度大于缓冲区长度时,并没有截断,原样输出了读入的字符串,造成程序崩溃。 考虑到程序安全性和健壮性,建议用fgets()来代替gets()。 如果你在GCC中使用gets(),编译无法通过,会提示: the 'gets' function is dangerous and shout ...
gets(s); ^ /tmp/cczUUgFf.o: In function `main': main.c:(.text+0x30): warning: the `gets' function is dangerous and should not be used. 1. 2. 3. 4. 5. 6. 虽然能够运行,但作为一个强迫症患者怎么能允许代码有警告出现呢?我们可以从警告的提示可以看到,gets函数是危险的,不建议去使用。
the 'gets' function is dangerous and shout not be used. 拓展内容:C语言函数知识点总结 总体上必须清楚的: 1)程序结构是三种:顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中...
the 'gets' function is dangerous and shout not be used. C语言gets()函数:从流中读取字符串 头文件: #include <stdio.h> gets()函数用于从缓冲区中读取字符串,其原型如下: char *gets(char *string); gets()函数从流中读取字符串,直到出现换行符或读到文件尾为止,最后加上NULL作为字符串结束。所读取...
a2.c:6:5: warning: implicit declaration of function ‘gets’ [-Wimplicit-function-declaration] gets(a); ^ /tmp/cceyMQ7u.o: In function `main': a2.c:(.text+0x41): warning: the `gets' function is dangerous and should not be used. ...
gets(s); ^ /tmp/ccvwVatT.o:在函数‘main'中: linuxidc.c:(.text+0x1f): 警告:the `gets' function is dangerous and should not be used. 问题解决 原因就在于,gets不会去检查字符串的长度,如果字符串过长就会导致溢出。如果溢出的字符覆盖了其他一些重要数据就会导致不可预测的后果。在man手册里也有...
在使用C语言中的gets()函数时,可能会出现一些报错。以下是一些常见的解决方法: 错误:gets() is dangerous and should not be used. 解决方法:使用更安全的函数fgets()来代替gets()。 错误:warning: the gets function is dangerous and should not be used. 解决方法:同样使用fgets()函数来代替gets()。 错误...
函数gets的原型为:char*gets(char*buffer); 在stdio.h中定义,如果要程序中用到此函数需包含#include<stdio.h> gets()函数用来从标准输入设备(键盘)读取字符串直至接受到换行符或EOF时停止结束,并将读取的结果存放在buffer指针所指向的字符数组中,但换行符会被丢弃,然后在末尾添加'\0'字符。
gets(s); ^ /tmp/ccvwVatT.o:在函数‘main'中: linuxidc.c:(.text+0x1f): 警告:the `gets' function is dangerous and should not be used. 问题解决 原因就在于,gets不会去检查字符串的长度,如果字符串过长就会导致溢出。如果溢出的字符覆盖了其他一些重要数据就会导致不可预测的后果。在man手册里也有...