鱼C论坛

 找回密码
 立即注册
查看: 7776|回复: 3

[已解决]gcc 要如何才能使用gets_s() 函数

[复制链接]
发表于 2017-6-22 15:41:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
都说 c11 标准删除了 gets() 函数,更换成了gets_s(),但这个gets_s()要怎样才能使用。
我用 gcc -std=c11 编译 出现错误: undefined reference to `_imp__gets_s',用不了,反而是gets() 还能用。

哪位大侠告知要如何才能使用gets_s()。 谢谢!!
最佳答案
2017-6-22 18:35:21
请参考 http://www.111cn.net/net/c/80288.htm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-22 18:35:21 | 显示全部楼层    本楼为最佳答案   
请参考 http://www.111cn.net/net/c/80288.htm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-22 20:13:51 | 显示全部楼层
ba21 发表于 2017-6-22 18:35
请参考 http://www.111cn.net/net/c/80288.htm

谢谢!原来是这样。。

"因为目前GCC中还没有完全实现此标准, 因此 gets_s() 函数尚未包含在目前的GNU 工具链中。Clang里也暂时没有增加对 gets_s 的支持。

所以最通用的做法,可能是自己实现一个。 如下是一种实现方式"
char *gets_s(char * str, int num)
{
    if (fgets(str, int, stdin) != 0)
    {
        size_t len = strlen(str);
        if (len > 0 && buffer[len-1] == 'n')
            buffer[len-1] = '';
        return buffer;
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-22 20:22:05 | 显示全部楼层
Jinlaips 发表于 2017-6-22 20:13
谢谢!原来是这样。。

"因为目前GCC中还没有完全实现此标准, 因此 gets_s() 函数尚未包含在目前的GNU ...

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-28 08:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表