#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循环之外,它可以正常扫描和打印。
发布于 2018-08-04 22:50:34
问题的解决方案
将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 {
https://stackoverflow.com/questions/51686601
复制相似问题