Input by using gets function

后端 未结 3 2096
有刺的猬
有刺的猬 2020-12-06 23:08

In Below Code When I want to Enter Record of second student or >2 student .. Compiler skip Name Input and take Input for class and age .. What a problem please help me ?

3条回答
  •  佛祖请我去吃肉
    2020-12-07 00:14

    It's the scanf. When you press ENTER after it, the newline completes the next call to gets.

    To fix this, you can add a getchar at the end of the loop, after the scanf, which will consume the newline.

    for(int i=0 ; i<5 ; i++)
    {
        printf("\n Enter Name  :");
        gets(a[i].Name);
        printf("\n Enter Class :");
        gets(a[i].Class);
        printf("\n Enter Age   : ");
        scanf("%d" , & a[i].age);
        getchar();
    }
    

提交回复
热议问题