Jinlaips 发表于 2017-6-22 15:41:13

gcc 要如何才能使用gets_s() 函数

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

哪位大侠告知要如何才能使用gets_s()。 谢谢!!

ba21 发表于 2017-6-22 18:35:21

请参考 http://www.111cn.net/net/c/80288.htm

Jinlaips 发表于 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 == 'n')
            buffer = '';
      return buffer;
    }
    return 0;
}

ba21 发表于 2017-6-22 20:22:05

Jinlaips 发表于 2017-6-22 20:13
谢谢!原来是这样。。

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

{:5_106:}
页: [1]
查看完整版本: gcc 要如何才能使用gets_s() 函数