c-在同一扫描中写入两个变量

  • 本文关键字:变量 两个 扫描 c scanf
  • 更新时间 :
  • 英文 :


所以我想在同一个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 %sn",myLastName);
getchar();
return 0;
}

我不知道我应该如何编写scanf_s部分,以包括两个变量(myFirstNamemyLastName(,所以它可以随心所欲。

如果你的两个输入不包含空格字符,你可以这样写:

if (scanf_s("%19s%19s",
myFirstName, (unsigned)sizeof(myFirstName),
myLastName, (unsigned)sizeof(myLastName)) != 2) {
puts("input failed");
return 1;
}

点:

  • Yon可以在格式字符串中指定多个转换说明符
  • %19s是用于读取字符串"%s"的格式分隔符,其限制为最多保存19个字符加上一个终止NUL字符
  • 当通过scanf_s读取字符串或字符时,类型为unsigned的缓冲区大小必须在指向缓冲区的每个指针之后指定
  • scanf_s返回成功读取数据的数量,因此应检查是否读取了足够的数据

参考:

scanf_s、_scanf_sl、wscanf_s和_wscanf_sl|Microsoft文档

最新更新