Односвязный список: считывание значений из файла - C (СИ)
Формулировка задачи:
Доброго времени суток! Пожалуйста, подскажите в чем может быть проблема. Есть односвязный список, считываю значения из файла, но значения почему-то всегда последнее... Вот код программы.
Содержимое файла из которого считывается:
A B 2
C D 3
E F 4
Помогите пожалуйста.
#include <stdio.h> typedef struct cart { char* a; char* b; int c; struct cart *next; } cart; FILE* file; cart* head = NULL; void push(cart **head, char* a, char* b, int c); void readthefile(cart **head); int main(int argc, char *argv[]) { readthefile(&head); while(head != NULL) { printf("%s %s %d\n", head->a, head->b, head->c); head = head->next; } return 0; } void readthefile(cart **head) { file = fopen("1.txt", "r"); char* a = (char*)malloc(20 * sizeof(char)); char* b = (char*)malloc(20 * sizeof(char)); int c; while(fscanf (file, "%s%s%d", a, b, &(c)) != EOF){ printf("%s %s %d\n", a, b, c); push(head, a, b, c); } } void push(cart **head, char* a, char* b, int c) { cart *tmp = (cart*) malloc(sizeof(cart)); tmp->a = a; tmp->b = b; tmp->c = c; tmp->next = (*head); (*head) = tmp; }
Решение задачи: «Односвязный список: считывание значений из файла»
textual
Листинг программы
tmp->a = a; tmp->b = b;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д