黑马程序员技术交流社区

标题: C语言输入函数 gets(),scanf(),fgets() [打印本页]

作者: ヅ光着脚丫dε尐    时间: 2014-8-1 17:01
标题: C语言输入函数 gets(),scanf(),fgets()
本帖最后由 ヅ光着脚丫dε尐 于 2014-8-6 20:24 编辑

gets()在Xcode中总是提示不安全,VC里没事,你们都是用什么来输入啊?
scanf("%d",&a);     fgets(string,99, stream);  等等
在测试题中用gets()有警告,但是不影响程序,可是这样会不会扣分啊?

作者: ヅ光着脚丫dε尐    时间: 2014-8-2 15:00
虽然gets()不影响程序的运行,可总感觉在输出栏冒一句话,很不舒服。。

这几个输入函数,有什么不同呢。。
作者: 陆习康    时间: 2014-8-2 15:34
说实话,我很少用这个,感觉挺陌生的
作者: ヅ光着脚丫dε尐    时间: 2014-8-2 16:42
陆习康 发表于 2014-8-2 15:34
说实话,我很少用这个,感觉挺陌生的

我用的最多的也就是scanf,gets。其他用的不多,,你技术分都这么高了啊。。
作者: ★彬★卍囧神    时间: 2014-8-2 21:52
gets()有缺陷好像,Xcode里尽量不用,视频里好像有说..我忘了,
作者: ★彬★卍囧神    时间: 2014-8-2 21:56
    gets函数没有限制它所读取长度,程序员应该保证buffer有足够的空间,否则buffer可能无法容纳gets所读取的内容,从而导致堆栈溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值。
作者: duzhong    时间: 2014-8-3 17:47
原来如此啊
作者: 陆习康    时间: 2014-8-3 23:33
ヅ光着脚丫dε尐 发表于 2014-8-2 16:42
我用的最多的也就是scanf,gets。其他用的不多,,你技术分都这么高了啊。。 ...

话说我是想进二期的,呵呵呵,我想哭
作者: ヅ光着脚丫dε尐    时间: 2014-8-3 23:47
陆习康 发表于 2014-8-3 23:33
话说我是想进二期的,呵呵呵,我想哭

没事没事。。第二期没去了。。就去第三期。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2