gpt4 book ai didi

c - 在for循环中运行scanf时出现逻辑错误,如何修复?

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

#include <stdlib.h>
#include <stdio.h>

struct card
{
char Top;
char Bottom;
};

int main()
{
int T,i;
struct card cards[4];
scanf("%d", &T);
for(i=0; i<3; i++)
{
scanf("%c%c%c", &cards[0].Top, &cards[1].Top, &cards[2].Top);
printf("%c%c%c\n", cards[0].Top, cards[1].Top, cards[2].Top);
}
return 0;
}

它没有正确打印这三个字符,在 for 循环之外它扫描并打印得很好。

最佳答案

问题的解决方案

scanf 行更改为此。 (注意%c之前的空格)

scanf(" %c %c %c", &cards[0].Top, &cards[1].Top, &cards[2].Top);

对您的代码的其他评论

始终检查 scanf 的返回值。它应该看起来像这样:

if(scanf(" %c %c %c", &cards[0].Top, &cards[1].Top, &cards[2].Top) != 3) {
// Print error message and exit program or something else
} else {

关于c - 在for循环中运行scanf时出现逻辑错误,如何修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51686601/

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