在简单的链表中插入并不能获得最后一行

时间:2017-06-21 23:22:36

标签: linked-list fgets singly-linked-list

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

这是文件:

  • 10,Ghidul Ciberbobocului,Stan Daria,3岁,Popescu Matei,Ionescu Gigel,Ilinca Radu,100.5
  • 2,Spring IT,Mirodene Cristina,4,Dumitru Mihai,Vasiliu Valentin,Balasa Silvia,Dumitru Ion,400。
  • 89,Serile teatrului studentesc,Petre Ion,2,Nicolae Ramona,Stan Alberto,1000
  • 1,Tutoring,Petre Miruna,2,Bode Cristina,Angelescu Paul,500.5
  • 11,IT Fest,Ciurea Ion,2,Ionescu Georgiana,Neagu Bianca,100.6

我的代码:

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分。

1 个答案:

答案 0 :(得分:0)

你是否在这个功能中打印过来检查它是否正确地执行了这段时间?

z1a <- 1.96;
n <- 17
set.seed(1)

M = runif(10)
M1 = matrix(data = NA, ncol = 10, nrow = 2);

zr <- (1/2)*log((1+M)/(1-M));
SE <- sqrt(0.437/(n-4));
zU <- zr+z1a*SE;
zL <- zr-z1a*SE;
rL <- (exp(2*zL)-1)/(exp(2*zL)+1);
rU <- (exp(2*zU)-1)/(exp(2*zU)+1);

M1 [1,1:10] <- (exp(2*zL)-1)/(exp(2*zL)+1);    
M1 [2,1:10] <- (exp(2*zU)-1)/(exp(2*zU)+1);