C语言输入输出问题,我使用的是xcode,能解释一下红框里为什么会这么说么

如题所述

第1个回答  2013-08-17
gets()函数不安全,不判断获取字符数可能溢出,可以用fgets()代替,不过学的时候无所谓追问

fgets确实可以做到,但是我想问一下,如果这么写
char employee_name [20];
fegts (employee_name, 5, stdin);
printf("%s",employee_name);
如果我写5个字母呢。。。
会发生什么

追答

只会输入4个字母,会留一个字符给结束标记'\0',如果只输入3个还会在‘\0'之前添加'\n'

追问

不知道是不是我的编译器的问题啊。。。

xcode打不出来

追答

fgets都写错了

本回答被提问者采纳
第2个回答  2013-08-17

在终端用命令

man gets

就能看到gets的相关信息的,包括他为何不安全。。。

追问

没看懂你在说什么啊

追答

右上角不是有个放大镜一样的图标么?
点开以后输入
terminal
然后选择第一个
然后在弹出来的窗口里面输入
man gets

追问

右上角没找到放大镜啊,倒是在左上角找到了,写了terminal之后没反应啊。。。。。。弄不明白啊。。。

相似回答