I have to write this code, I mean I should read from the file name of students and their mark, and then sort students by the grow of mark. Now I just want to output only mark. I want to display grades using structures. I don't know where the problem is.
text.file
Jon 3
Alina 5
Ron 1
#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
#include <stdlib.h>
int main()
{
    const int N = 3;
    int i = 0;
    struct student {
        char surname[50];
        int mark;
    };
    struct student PI1[N];
    char str[50];
    const char s[1] = " ";
    char* token;
    FILE* ptr;
    token = strtok(str, s);
    
    ptr = fopen("test.txt", "r");
    if (NULL == ptr) {
        printf("file can't be opened \n");
    }
    while (fgets(str, 50, ptr) != NULL){
        
        token = strtok(str, s);
        strcpy(PI1[i].surname, token);
        token = strtok(NULL, s);
        PI1[i].mark = atoi(token);
        i++;
    }
    fclose(ptr);
    printf("The marks is:\n");
    printf("%d %d %d", PI1[0].mark, PI1[1].mark, PI1[2].mark);
    return 0;
}
 
     
    