gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 19:01:04 29 4
gpt4 key购买 nike

所以我想在同一个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 部分来包含两个变量(myFirstNamemyLastName),所以它的结果是我想要它。

最佳答案

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

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返回成功读取数据的数量,因此应该检查是否读取了足够的数据。

引用:

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l | Microsoft Docs

关于c - 在同一个 scanf_s 中写入两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58544692/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com