笔记:UBUNTU上GCC编译器编译gets_s()模块出错的解决方案
本文最后更新于 195 天前,其中的信息可能已经有所发展或是发生改变。

问题描述

首先给出代码如下:

#include <stdlib.h> /*引入标准库头文件*/
#include <stdio.h> /*引入输入输出库头文件*/
int main()
{
char message[100]={'\0'};/*定义字符数组,可存储 99 个字符*/
gets_s(message); /*输入最多 99 个字符的一句话*/
puts(message); /*将此句话打印到显示器*/
return 0;
}

此代码在Windows环境下的visual stdio2022中运行正常,但是在Ubuntu(20.04)使用gcc编译器编译时出现如下的问题:undefined reference to `gets_s’,错误如下图:

原因与解决方案

原因:ubuntu下的gcc将gets_s函数给去除了,所以在编译时会出现如上的错误

解决方案:使用fgets()函数,

将上图中的 gets_s()函数换位fgets()函数,代码如下

#include <stdlib.h> /*引入标准库头文件*/
#include <stdio.h> /*引入输入输出库头文件*/
int main()
{
        char message[100]={'\0'};/*定义字符数组,可存储 99 个字符*/
        fgets(message, 99, stdin); /*输入最多 99 个字符的一句话*/
        puts(message); /*将此句话打印到显示器*/
        return 0;
}

问题解决。

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议,记得载明出处,(期待)。内容有问题?点此反馈
上一篇
下一篇