#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循环之外却无法正常打印并打印出来。
答案 0 :(得分:1)
解决问题的方法
将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 {