K so I managed to successfully get all the data I wanted into the structure
Code:
int getData (FILE* fpData, STU* pData)
{
//    Local Definitions
    int ioResult;
    char temp[MAX_SIZE];
    char *pGpa, *pEnd, *pName;

//    Statements
    fgets(temp, sizeof(temp), fpData);

    sscanf(temp, "%4s", pData->pin);

    pGpa = strrchr(temp, ';') + 1;
    pData->gpa = strtod(pGpa, &pEnd);

    *pGpa = '\0';
    pName = temp + sizeof(pData->pin);
    pData->name = (char *)calloc (strlen(pName) + 1, sizeof(char));
    if(!pData->name)
        printf("Error! Out of memory\n");
    strcpy(pData->name, pName);

    printf("%s %s %.2lf\n", pData->pin, pData->name, pData->gpa);
    ioResult = 1;
    system("pause");
    if (ioResult == 1)
       return 1;
    else
       return 0;
}    // getData
Don't know if there is an easier way to do this...