本文最后更新于 380 天前,其中的信息可能已经有所发展或是发生改变。
问题描述
首先给出代码如下:
#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;
}
问题解决。