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);
};
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
按照对应格式输入,中间加了空格的话是可以正确识别的
#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);
};