#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int read_text(char str[], int size, int flag);

#define SIZE 100

struct Student
{
    char name[50];
    int code;
    float grd;
};

int main(void)
{
    struct Student stud[SIZE];
    int i;

    for (i = 0; i < SIZE; i++)
    {
        printf("\nEnter name: ");
        read_text(stud[i].name, sizeof(stud[i].name), 1);

        printf("Enter code: ");
        scanf("%d", &stud[i].code);

        printf("Enter grade: ");
        scanf("%f", &stud[i].grd);

        printf("\nN: %s C: %d G: %.2f\n",
               stud[i].name,
               stud[i].code,
               stud[i].grd);

        getchar();
    }

    return 0;
}


int read_text(char str[], int size, int flag)
{
    int len;

    if(fgets(str, size, stdin) == NULL)
    {
        printf("Error: fgets() failed\n");
        exit(EXIT_FAILURE);
    }

    len = strlen(str);
    if(len > 0)
    {
        if(flag && (str[len - 1] == '\n'))
        {
            str[len - 1] = '\0';
            len--;
        }
    }
    else
    {
        printf("Error: No input\n");
        exit(EXIT_FAILURE);
    }

    return len;
}
