fgets()与get() 两个函数的出错
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(void)
{
/*********Begin*********/
char s1[150], s2[150], s3[150];
int f, m, n, i, j = 0, k = 0;
m = strlen(s1);
n = strlen(s2);
fgets(s1,m,stdin);
fgets(s2,n,stdin);
scanf("%d", &f);
for (i = f; i < m; i++)
{
s3[k++] = s1[i];
}
for (i = f; i < n + f + 1; i++)
{
s1[i] = s2[j++];
}
strcat(s1, s3);
s1[m + n] = '\0'; //使s1与s2连接后的s1的最后为'\0'
printf("%s", s1);
/*********End**********/
return 0;
}
报错:1>D:\Java课程资料\code\Project3.cpp(9,19): warning C4267: “=”: 从“size_t”转换到“int”,可能丢失数据
1>D:\Java课程资料\code\Project3.cpp(10,16): warning C4267: “=”: 从“size_t”转换到“int”,可能丢失数据
为什么呢?报错内容我也不懂什么意思
其实原来版本是
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(void)
{
/*********Begin*********/
char s1[150],s2[150],s3[150];
int f,m,n,i,j=0,k=0;
gets(s1);
gets(s2);
scanf("%d",&f);
m=strlen(s1);
n=strlen(s2);
for(i=f;i<m;i++)
{
s3[k++]=s1[i];
}
for(i=f;i<n+f+1;i++)
{
s1[i]=s2[j++];
}
strcat(s1,s3);
s1[m+n]='\0'; //使s1与s2连接后的s1的最后为'\0'
printf("%s",s1);
/*********End**********/
return 0;
}
但是在visual studio 2022中运行会出错,
没定义标识符gets 没找到标识符gets 希望能帮忙解决一下,谢谢