您的位置:首页 > 编程语言 > C语言/C++

黑马程序员-C语言的输入函数

2015-10-21 22:13 253 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

在C语言中,常用的用于输入的函数有 scanf,gets,fgets

相比较这三个输入函数,都有各自的优缺点,以输入字符串为例。

scanf 函数,优点:在输入字符串,不检查长度,你输入多少,他就使用多少内存。另外可以用于多种数据类型的输入。

缺点:输入多少就占用多少内存,即使是系统关键内存,也可以覆盖掉,可能会引发错误。另外就是,输入的字符串无法含有空格。

gets函数,优点:相比较scanf函数来说,可以输入空格,应该是gets函数最大的优点了。

缺点:其没有指定输入字符的大小,限制输入缓冲区得大小,如果输入的字符大于定义的数组长度,会发生内存越界,堆栈溢出。后果很严重。

fgets函数,优点:安全,函数原型为char *fgets(char *buf, int bufsize, FILE *stream) ,当输入的时候限定了输入字符串的长度,不会发生内存越界,堆栈溢出。

缺点:只能输入字符串。

当我们在程序中需要使用输入的时候,为了程序的安全性来考虑,建议使用fgets来进行输入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: