c - 输入数据到结构

标签 c struct

当我输入名称时,此代码将进入循环,但不会出现。有什么问题?

# define M 3
struct clas
{
    char name[16];
    int key;
};


struct node
{
    int n; 
    struct node *p[M];  
    struct clas clsf[M-1] ;
};

main()
{
    int i;

    struct clas clsf;
    for(i=0;i<2;i++)
    {
        root = malloc(sizeof (struct node));
        printf("enter name \n");
        scanf("%s\n",root->clsf[i].name);
        printf("%s\n",root->clsf[i].name);
        printf("enter key\n");
        scanf("%d", &root->clsf[i].key);
        printf("%d",root->clsf[i].key);
    }
}

最佳答案

  • root 未定义,并且有一个未定义的struct classifier 实例:clsf

    struct classifier clsf;替换为struct node *root;

  • scanf 格式中删除结尾的 \n:

    rpelace scanf("%s\n",root->clsf[i].name);scanf("%s",root->clsf[i].名称);

关于c - 输入数据到结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4849172/

相关文章:

c - 在同一个指针上重复调用

c - WinMain 入口点 - 汇编代码看起来好像没有参数传递给入口点

c - 如何增加函数参数指向的 block 的大小?

ios - secondVC 中的结构数组未从 firstVC 附加

c - 在结构定义中的 ' ' 标记之前应为 '='

go - 从结构 slice 动态创建 map[string]struct 的常用函数

C函数返回指向结构的指针

c - 程序不会等待用户输入 scanf ("%c",&yn);

c - C编程AT89C51中的局部变量

c - C 中的简单链表函数