Добавляем целое число из текстового файла, но оно печатает что-то еще - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь вставить данные из текстового файла в связанный список, данные содержат

ID-name
12345678-abcdefgh

Но я не знаю, почему идентификатор всегда печатает странные числа, и я не могу кажется, найти какие-либо ошибки в моем коде. У кого-нибудь есть идеи, что заставляет ID печатать случайные числа, например:

-1069759088
#include<stdio.h>
#include<stdbool.h>
#include<string.h>
#include<stdlib.h>

struct mhs{

    int nim;
    char name[1000];

    struct mhs *next;

};

int main(){

    struct mhs *head, *node, *curr;
    struct mhs *hashT[1000];
    int nim;
    char name[100];
    int i, size = 0;
    int choice;
    head = curr = NULL;

    node = (struct mhs *)malloc(sizeof(struct mhs));

    FILE *fp;
    fp = fopen("datamhs.txt", "r");
    if(fp != NULL){
        while(fscanf(fp, "%d-%[^\n]", &nim, name) != EOF){
            fflush(stdin);
            strcpy(node->name, name);
            node -> nim = nim;
            printf("%d\n", node->nim);
            printf("%s\n", node->name);

            system("pause");
            node -> next = NULL;
            if(head == NULL){
                head = node;
            } else {
                curr = head;
                while(curr -> next != NULL){
                    curr = curr -> next;
                }
                curr -> next = node;
            }
            size++;
        }
    } else {
        printf("Error, no file to read\n");
    }

Кстати, вывод программы составляет

-1069759088
abcdefgh
...