Заполнение круглого двойного связанного списка с помощью текстового файла - PullRequest
0 голосов
/ 17 октября 2018

Мне дан текстовый файл с именем circle.txt.Этот текстовый файл состоит из имен и номеров рубашек, таких как

Cameron 1
David 2
Dorothy 3
Heather 4

и т. Д. До 100

Так что я должен сделать проект, основанный на счетчике игры и одной частипроекта требуется создать круговой двойной связанный список, используя функцию void createGame(char* gameFile, int numOfPlayers); для указанного количества игроков, чтобы каждая ссылка представляла игрока.Затем я должен установить имена и номера футболок для игроков на основе значений, считанных из файла.Таким образом, мой заголовочный файл со всеми функциями выглядит следующим образом:

countOust.h

#ifndef CountOust_h
#define CountOust_h

struct listNode
{
    int hName; //represents numbers in file
    char data[15]; // represents name in file
    struct listNode *next;
    struct listNode *prev;

};
typedef struct listNode sNode;

void createGame(char *gameFile, int numOfPlayers);
//void traverseFwd(sNode *list);
//void insertAt(sNode *list, sNode *player);
//void lRemove(sNode *player);
//void traverseBwd(sNode *list);
//void startGame();

#endif

Некоторые функции закомментированы, поскольку основное внимание уделяется функции createGame.

Итак, я попытался заполнить ссылку в моем списке countOust.c, используя fopen, и цикл for с fscanf.Я пробовал что-то вроде

countOust.c

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <stdbool.h>
#include "CountOust.h"

void createGame(char *gameFile, int numOfPlayers)
{
    FILE* f;
    f = fopen(gameFile, "r");

   // head = (struct sNode *)malloc(sizeof(sNode);

    fscanf(f, "%s %d", head->data, &head->hName);

    for (int i = 0; i < numOfPlayers - 1; i++)
    {


    }


    fscanf(f, "%s %d", tail->data, &tail->hName);


}

^ Это выдает ошибку, потому что его мозговой штурм код

Мне нужен fscanf, который будет содержать строку и целое числопредставляющие имена в файлах и числа в файле.

Мне нужно установить пространство malloc для узла, и узел должен иметь ссылку на номер имени на следующий узел и ссылку на предыдущий узел.Затем мне нужно задать имя и номер, а затем установить указатель для узлов prev и next.

Итак, как мне создать круговой двойной связанный список и заполнить текстовый файл для имен игроков и номеров рубашек, используяfscanf, malloc, ссылаясь на узлы из моей структуры заголовочного файла, чтобы создать круговой двойной связанный список из текстового файла?

1 Ответ

0 голосов
/ 17 октября 2018

Предполагая, что gamefile содержит имя вашего circle.txt файла, ваш fscanf() вызов будет читать только те номера, которые записаны в данный момент.Вам также нужно добавить что-то, чтобы прочитать имена.

fscanf(f, "%s %d", args...) будет хорошей отправной точкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...