gpt4 book ai didi

c - scanf 的这种行为如何解释?

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

我有这个代码:

#include <stdio.h>
int main()
{
char vc[5]={1,1,1,1,0};
int vi[4]={0,0,0,0};

printf("Reading characters...\n");
for(int i = 0 ; i < 4 ; i++)
scanf("%c",&vc[i]);

printf("Reading numbers...\n");
for(int i = 0 ; i < 4 ; i++)
scanf("%d",&vi[i]);

for(int i = 0 ; i < 4 ; i++)
printf("%c ",vc[i]);

printf("\n");

for(int i = 0 ; i < 4 ; i++)
printf("%d ",vi[i]);

printf("\n");

return 0;
}

在打印“正在读取数字”并进入下一个 for 循环之前,我只能输入 2 个字符。为什么迭代只持续 2 步?应该是 4。

最佳答案

这是因为 %c 不会忽略空格,并且您可能会按回车键。尝试:

scanf(" %c",&vc[i]);
^

空格使 scanf 忽略任何空格。

关于c - scanf 的这种行为如何解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15852785/

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