为什么scanf接收不了后面那2个字符

scanf("%s%s%s%s %c %c",d->name,d->hao,d->zhong,d->sg,&d->z,&d->s)

你输入时那2个字符之间要加一个空格
比如输入

aaa bbbb ccccc dddd e f

e和f之间要有空格
参考代码

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

struct data
{
    char name[100];
    char hao[100];
    char zhong[100];
    char sg[100];
    char z;
    char s;
};
int main()
{
    struct data *d = (struct data *)malloc(sizeof(struct data));
    scanf("%s%s%s%s %c %c",d->name,d->hao,d->zhong,d->sg,&d->z,&d->s);
    printf("%s\n%s\n%s\n%s\n%c\n%c", d->name, d->hao, d->zhong, d->sg, d->z, d->s);
};

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

按照对应格式输入,中间加了空格的话是可以正确识别的

#include <stdio.h>
struct test
{
    char name[20], hao[20], zhong[20], sg[20], z, s;
} * d, c;
int main(int argc, char const *argv[])
{
    d = &c;
    scanf("%s%s%s%s %c %c", d->name, d->hao, d->zhong, d->sg, &d->z, &d->s);
    printf("%s %s %s %s %c %c", d->name, d->hao, d->zhong, d->sg, d->z, d->s);
};

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632