scanf_s打印不出来,用的VS,一有数组就打印不了,是什么问题啊

#include*/编写一个程序,提示用户输入名和姓,然后以"名,姓"的格式打印出来/
int main(void)
{
char fname[20], lname[20];

printf("Please enter your first name: ");
scanf_s("%19s",fname[20]);
printf("Please enter your last name: ");
scanf_s("%19s",lname[20]);
printf("Hello! %s, %s.\n", fname, lname);

return 0;

}


scanf_s("%19s",fname[20]);
->

scanf_s("%s",&fname[0], 19);

这样看看呢

完整的程序


#include <stdio.h>*/编写一个程序,提示用户输入名和姓,然后以"名,姓"的格式打印出来/
int main(void)
{
char fname[20], lname[20];

printf("Please enter your first name: ");
scanf_s("%s",&fname[0], 19);
printf("Please enter your last name: ");
scanf_s("%s",&lname[0], 19);
printf("Hello! %s, %s.\n", fname, lname);
 
return 0;
}

scanf_s使用不正确,修改如下:

#include <stdio.h>//编写一个程序,提示用户输入名和姓,然后以"名,姓"的格式打印出来/
int main(void)
{
char fname[20], lname[20];

printf("Please enter your first name: ");
scanf_s("%s",fname,20);
printf("Please enter your last name: ");
scanf_s("%s",lname,20);
printf("Hello! %s, %s.\n", fname, lname);
 
return 0;
}

参考GPT和自己的思路:

这个问题是因为 scanf_s 函数的参数传递有误。应该传递数组名,而不是数组中的某一个元素。具体的修改方法如下所示:

printf("Please enter your first name: ");
scanf_s("%19s",fname, 20);
printf("Please enter your last name: ");
scanf_s("%19s",lname, 20);
printf("Hello! %s, %s.\n", fname, lname);

这样就可以正确地获取用户输入的内容,并且打印出来了。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^