插入简单链表不会得到最后一行

insert in simple linked list doesn't get last line

我正在尝试从一个文件插入一个简单的链表。你 伙计们知道为什么函数没有在我的中插入最后一行 选项卡?

这是文件:

我的代码:

struct Proiect {
    int id;
    char* numeProiect;
    char* numeCoordonator;
    unsigned int nrStudenti;
    char**  studenti;
    float costInscriere;
};

struct nodLista {
    Proiect proiect;
    nodLista *next;
};

nodLista* inserareNod(nodLista *first, Proiect p) {
    nodLista* newNode = new nodLista;
    newNode->next = NULL;
    newNode->proiect = p;

    if (!first) {
        return newNode;
    }

    nodLista* aux = first;
    while (aux->next) {
        aux = aux->next;
    }

    aux->next = newNode;
    printf("%d\n", aux->proiect.id);
    return first;
}

void main() {
    nodLista* first = NULL;
    Proiect proiect;


    FILE *f = fopen("proiecte2.txt", "r");
    char line[150];
    int nrProiecte = 0;
    if (f) {
        while (fgets(line, sizeof(line), f)) {
            nrProiecte++;
        }
        printf("Nr proiecte: %d",nrProiecte);
        fclose(f);
    }
    else {
        printf("Fisierul nu a fost gasit");
    }

    f = fopen("proiecte2.txt", "r");
    char *token[150], sep_list[] = ",";
    Proiect* listaProiecte;
    listaProiecte = (Proiect*)malloc(nrProiecte * sizeof(Proiect));
    int i = 0;

    if (f) {
        while(fgets(line, sizeof(line), f)) {
            token[0] = strtok(line, sep_list);
            listaProiecte[i].id = atoi(token[0]);


            first = inserareNod(first, listaProiecte[i]);
            i++;
        }

    }
    else printf("Fisierul nu aputut fi deschis");

}

输出: 只显示 10、2、89 和 1。

您是否在该函数内部进行了打印以检查它是否正确运行?

 while(fgets(line, sizeof(line), f)) {
            token[0] = strtok(line, sep_list);
            listaProiecte[i].id = atoi(token[0]);


            first = inserareNod(first, listaProiecte[i]);
            i++;
        }