当gets()变成了gets_s()

moon__spirit 2014-03-15 09:54:45
从何时起gets()变成了gets_s(),昨天用了一下下vs2013,被虐了。
想知道oj的GNU C里面改没改,现在主流编译器在用什么标准(codeblocks、dev都不认gets-s()),咱有必要改用gets_s()吗
...全文
6125 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjcapple 2016-05-06
  • 打赏
  • 举报
回复
应该不是微软自己的东西吧
  • 打赏
  • 举报
回复
gets_s 已列入c11标准。我们应该拥抱新标准,不要开历史的倒车。 http://zh.cppreference.com/w/c/io/gets 另外,所有I/O函数,只要是写缓冲区的,都要看看是否可以传入缓冲区大小,如果不可以就坚决不要用。
coolper79 2016-02-24
  • 打赏
  • 举报
回复
gets_s 是C11 标准里的
qq120848369 2014-03-16
  • 打赏
  • 举报
回复
fgets和gets是C标准库的IO函数,get_s是微软自创的。 fgets是安全的,gets不安全永远别用。
luotuo44 2014-03-15
  • 打赏
  • 举报
回复
没必要用gets_s。没有可移植性。 可以用C标准库中的fgets代替。一样安全。

fgets(buff, sizeof(buff), stdin);
mujiok2003 2014-03-15
  • 打赏
  • 举报
回复
引用 1 楼 JiMoKuangXiangQu 的回复:
这是微软自己的东西,不具备移值性。后面带的那个s是“安全”的意思,号称是更安全的函数,呵呵。
++
JiMoKuangXiangQu 2014-03-15
  • 打赏
  • 举报
回复
这是微软自己的东西,不具备移值性。后面带的那个s是“安全”的意思,号称是更安全的函数,呵呵。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧