gpt4 book ai didi

c - 我不知道为什么代码中的输入会被回退。 C语言

转载 作者:行者123 更新时间:2023-11-30 19:24:51 25 4
gpt4 key购买 nike

int a, b, n;
printf_s("테스트의 개수를 입력하세요 :");
scanf_s("%d", &n);


for (int i = 1; i <= n; i++)
{
printf("=====================================\n");
printf("%d번째 테스트의 행을 입력하세요 \n",i);
scanf_s("%d%d ", &a, &b);
printf("%d 번째 결과 : 두 수 %d와 %d의 합은 %d\n",i, a, b, a + b);
printf("=====================================\n\n\n");
}

return 0;


输出是



在第一行测试中,您必须输入两组数字才能得到结果。在那之后,第二行没有7 7的结果,而是前4 4的结果。

我不知道为什么会这样

最佳答案

这是因为在对scanf-的调用中,格式字符串的末尾有一个空格-这要求它读取空格,直到空格块结束(即非空格字符)为止。只需删除空间。即

scanf_s("%d%d ", &a, &b);-> scanf_s("%d%d ", &a, &b);

联机帮助页中对此进行了记录(请运行man 3 scanf进行阅读)。值得注意的是,scanf为此等效地对待所有空白字符。



作为补充说明,要在堆栈溢出时提供最佳的答案,请提供minimum reproducible example。在这种情况下,就像添加#include <stdio.h>并包装main函数中提供的代码一样容易,但是如果您发布的代码没有按原样编译,人们将无法有效地帮助您。 ;我们正在自愿提供时间来提供帮助,请尽可能地做到这一点。

关于c - 我不知道为什么代码中的输入会被回退。 C语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59782448/

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