0
我想從文件中插入一個簡單的鏈接列表。你 傢伙有任何想法,爲什麼該功能不會插入我的 文件中的最後一行?在簡單鏈表中插入沒有得到最後一行
這是文件:
- 10,Ghidul Ciberbobocului,斯坦的Daria,3,波佩斯庫馬太,約內斯庫Gigel,Ilinca拉杜,100.5
- 2,彈簧IT,Mirodene克里斯蒂娜,4, Dumitru Mihai,Vasiliu Valentin,Balasa Silvia,Dumitru Ion,400。
- 89,Serile teatrului studentesc,Petre的離子,2,尼古拉·拉馬納,斯坦阿爾貝託,1000
- 1,輔導,Petre的米魯娜,2,博德克里斯蒂娜,Angelescu保羅,500.5
- 11,IT巨星,Ciurea離子,2,Ionescu的喬治亞娜,Neagu比安卡,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.
我只是在這個函數裏面打印,它讀取所有的行。 – Maria
好吧,我認爲這是正確的。我只是在紙上做了這件事,除了printf本身,它工作正常。您始終打印「輔助」。當您放入最後一個元素時,您正在打印元素 ' 例如: 插入:** 89 ** 當前輔助時間:**輔助= 2 ** 要插入的元素:** aux - > next = 89 ** 列表狀態:** 10 - > 2 - > 89 - > null ** printf(... aux)// **輸出:2 ** ' 所以我認爲你永遠不會達到最後元素雖然打印,但元素插入正確。做另一項功能打印 –
你是對的。謝謝 !! – Maria