C语言gets()函数:从流中读取字符串
来源:互联网 发布:古文四知翻译 编辑:程序博客网 时间:2024/05/16 18:47
头文件:#include <stdio.h>
gets()函数用于从缓冲区中读取字符串,其原型如下:
char *gets(char *string);
gets()函数从流中读取字符串,直到出现换行符或读到文件尾为止,最后加上NULL作为字符串结束。所读取的字符串暂存在给定的参数string中。
【返回值】若成功则返回string的指针,否则返回NULL。
注意:由于gets()不检查字符串string的大小,必须遇到换行符或文件结尾才会结束输入,因此容易造成缓存溢出的安全性问题,导致程序崩溃,可以使用fgets()代替。
【实例】请看下面一个简单的例子。如果输入123456(长度小于10),则输出结果为:
Input a string.
123456↙
The string you input is:123456
如果输入12345678901234567890(长度大于10),则输出结果为:
Input a string.
12345678901234567890↙
The string you input is:12345678901234567890
同时看到系统提示程序已经崩溃。
如果不能正确使用gets()函数,带来的危害是很大的,就如上面我们看到的,输入字符串的长度大于缓冲区长度时,并没有截断,原样输出了读入的字符串,造成程序崩溃。
考虑到程序安全性和健壮性,建议用fgets()来代替gets()。
如果你在GCC中使用gets(),编译无法通过,会提示:
the 'gets' function is dangerous and shout not be used.
gets()函数用于从缓冲区中读取字符串,其原型如下:
char *gets(char *string);
gets()函数从流中读取字符串,直到出现换行符或读到文件尾为止,最后加上NULL作为字符串结束。所读取的字符串暂存在给定的参数string中。
【返回值】若成功则返回string的指针,否则返回NULL。
注意:由于gets()不检查字符串string的大小,必须遇到换行符或文件结尾才会结束输入,因此容易造成缓存溢出的安全性问题,导致程序崩溃,可以使用fgets()代替。
【实例】请看下面一个简单的例子。
- #include <stdio.h>
- int main(void)
- {
- char str[10];
- printf("Input a string.\n");
- gets(str);
- printf("The string you input is: %s",str); //输出所有的值,注意a
- }
Input a string.
123456↙
The string you input is:123456
如果输入12345678901234567890(长度大于10),则输出结果为:
Input a string.
12345678901234567890↙
The string you input is:12345678901234567890
同时看到系统提示程序已经崩溃。
如果不能正确使用gets()函数,带来的危害是很大的,就如上面我们看到的,输入字符串的长度大于缓冲区长度时,并没有截断,原样输出了读入的字符串,造成程序崩溃。
考虑到程序安全性和健壮性,建议用fgets()来代替gets()。
如果你在GCC中使用gets(),编译无法通过,会提示:
the 'gets' function is dangerous and shout not be used.
1 0
- C语言gets()函数:从流中读取字符串
- C语言字符串读取函数 gets()与fgets()
- c/c++ 从键盘流中读入字符串的函数:gets(str);
- C语言的字符串输入gets()函数
- C语言sscanf()函数:从字符串中读取指定格式的数据&&C语言strtok()函数:字符串分割
- C语言sscanf()函数:从字符串中读取指定格式的数据
- C语言中scanf函数和gets函数在输入字符串时的区别
- C语言中字符串输入中scanf与gets函数的区别
- C语言字符串输入,gets函数的缺点以及解决方法
- C语言基础—字符串输入输出函数puts和gets
- C语言gets函数了解
- C语言 gets(),puts()函数
- C语言中gets、fgets以及fputs函数
- C语言中scanf、getchar、gets函数的比较
- C语言中关于gets和scanf函数的理解
- C语言中gets是危险函数,用fgets代替
- 【C++】从标准输入中读取字符串
- C语言:gets/puts输入输出字符串
- 第三方应用登录到微博
- IOS 设置启动图标 和 启动图片(转载自 http://justsee.iteye.com/blog/2123545)
- PHP实现四种基本排序算法
- 常用的 arm 指令集
- Linux学习过程中做过的东西总结
- C语言gets()函数:从流中读取字符串
- Mac安装tomcat
- android 通知Notification的使用小实例(振动,灯光,声音)
- HDU 3870 Catch the Theves 最短路求最小割
- 整理的笔试面试题
- coderforce 591B Rebranding
- 327 (Div. 2)A
- 九度OJ 1180:对称矩阵 (矩阵计算)
- Mac下抓包工具Paros的使用