程序显示错误为标题。 scanf_s功能有什么问题? 任何的想法?提前谢谢。
int main()
{
struct Students
{
char name[10];
int snum;
float point;
}st[5];
int i;
for(i=0;i<5;i++)
{
printf("-- Student Info --\n-");
printf("Enter Your Name: ");
scanf_s("%s",st[i].name);
printf("\nEnter Your Number: ");
scanf_s("%d",&st[i].snum);
}
return 0;
}
答案 0 :(得分:0)
当编译器检测到满足格式字符串中占位符所需的参数数量与提供的参数数量之间不匹配时,通常会发生这种类型的错误。
这是Visual Studio 2015及更高版本中提供的新警告。 因此,为了使代码正常工作,您需要提供两个参数,一个是地址一,第二个是地址的sizeof(variable)占位符。
scanf_s("%s", &string, sizeof(string));
这将使代码正常工作。