这个警告是怎么回事?我把头文件加入进来了,源代码如下

c(14): warning C4013: “gets”未定义;假设外部返回 int  

#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
void main()
{
void swap(char *, char *);//函数声明
char str1[20], str2[20], str3[20];//定义三个字符串数组
printf("input three line:\n");
gets(str1);
gets(str2);
gets(str3);//字符串初始化

if (strcmp(str1, str2)>0)   swap(str1, str2);//如果str1大,交换
if (strcmp(str1, str3)>0)   swap(str1, str3);
if (strcmp(str2, str3)>0)   swap(str2, str3);
printf("Now,the order is:\n");
printf("%s\n%s\n%s\n", str1, str2, str3);
system("pause");

}
void swap(char *p1, char *p2)
{
char p[20];
strcpy(p, p1); strcpy(p1, p2); strcpy(p2, p);//字符串排序函数
}

可能是编译器的原因,这些都是标准C的函数

这是标准库函数,不应该未找到呀,你试试重建工程。

网上查一下gets在那里定义的,因为include后面的内容看不到,不确定你引入了没有,然后把头文件加进去就可以了;你这个工程应该不是自动生成的,不然你代码里面不可能main函数没返回值,你试下新建一个win32的程序,把main里的代码复制过去。应该就好了

#include //这个头文件包含gets()函数,这个函数在ISO/IEC 9899 2011(C11)标准中被移除

gets(s) 函数中的变量s为一字符串指针。如果为单个字符指针,编译连接不会有错误,但运行后内存溢出错误。
宽字符版本,当使用unicode宽字符文本时,使用这个函数 _getws();
在C11标准中被删除,改为了更加安全的gets_s().