所以我想在同一个scanf_s
中写入两个变量。也许我什至没有用正确的名字来描述我想要的东西,因为我是新来的,但基本上我希望它像这样出现:
What is your last and first name: John Smith
Thank you now I know that your first name is John and your last name is Smith
我写的是这个:
#include <iostream>
int main(void)
{
char myFirstName[20];
char myLastName[20];
printf("\nWhat is your first and last name: ");
scanf_s("???")
printf("Thank you now I know that your first name is %s", myFirstName); printf(" and your last name
is %s\n",myLastName);
getchar();
return 0;
}
而且我不知道如何编写scanf_s
部分以包括两个变量(myFirstName
和myLastName
),以便根据需要显示它。
如果两个输入不包含空格字符,则可以这样写:
if (scanf_s("%19s%19s",
myFirstName, (unsigned)sizeof(myFirstName),
myLastName, (unsigned)sizeof(myLastName)) != 2) {
puts("input failed");
return 1;
}
要点:
%19s
是一种格式字符串,用于读取字符串"%s"
,其限制为最多保存19个字符和一个终止NUL字符。scanf_s
读取字符串或字符时,必须在每个指向缓冲区的指针之后指定unsigned
类型的缓冲区大小。scanf_s
返回成功读取的数据数,因此应检查以查看是否读取了足够的数据。参考: