Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Takeshi80
17 / 15 / 2
Регистрация: 08.03.2012
Сообщений: 126
#1

Не связные списки - C++

22.11.2014, 16:54. Просмотров 157. Ответов 0
Метки нет (Все метки)

Доброго времени суток уважаемые форумчане, возникла небольшая проблема со списками, очень надеюсь на вашу помощь.

Есть структура данных:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct PidKat
{
    char country[100];
    char FIO[100];
    float rezult=0;
    PidKat *next;
};
 
struct Katalog
{
    int dist;
    PidKat *Pk;
    Katalog *next;
};
И есть функция Input, которая считывает с файла нужную мне инфу, и она должна закидать это все в список, но, почему-то не работает, помогите найти ошибку:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
void Input(Katalog *list)
{
    FILE *f = fopen("input.txt", "rt");
    char c[100], *ptr,*ptr2;
    if (list == NULL)
        list = new Katalog;
    else
    {
        list->next = new Katalog;
        list = list->next;
    }
    if (list->Pk == NULL)
        list->Pk = new PidKat;
    else
    {
        list->Pk->next = new PidKat;
        list->Pk = list->Pk->next;
    }
 
    fgets(c, 100, f);
    ptr2 = strtok(c, ":");
    ptr2 = strtok(NULL, " ");
    list->dist = atoi(ptr2);
    while (!feof(f))
    {
        fgets(c, 100, f);
        if (c[0] == 'd' && c[1] == 'i')
        {
            list->next = new Katalog;
            list = list->next;
            ptr = strtok(c, ":");
            ptr = strtok(NULL, " ");
            list->dist = atoi(ptr);
            list->Pk = new PidKat;
            list->next = NULL;
        }
        else
        {       
            ptr = strtok(c, " ");
            
            strcpy(list->Pk->country, ptr);
            while (ptr != NULL)
            {
                ptr = strtok(NULL, " ");
                memset(list->Pk->FIO, 0, strlen(list->Pk->FIO));
                strcpy(list->Pk->FIO, ptr);
                list->Pk->FIO[strlen(list->Pk->FIO)] = ' ';
                ptr = strtok(NULL, " ");
                strcat(list->Pk->FIO, ptr);
                list->Pk->FIO[strlen(list->Pk->FIO)] = ' ';
                ptr = strtok(NULL, " ");
                strcat(list->Pk->FIO, ptr);
                ptr = strtok(NULL, " ");
                list->Pk->rezult = atof(ptr);
                ptr = strtok(NULL, " ");
            }
            list->Pk->next = NULL;
        }
        
    }
    list->next = NULL;
}
я думаю проблема с

C++
1
list->Pk
поскольку при записе в main следующей конструкции
C++
1
list->Pk = NULL;
выдает ошибку:
Не связные списки

содержание файла input.txt:
distance: 100
Україна Козубко Олександр Ростиславович 12.3
Польща Фрост Анджей Рюрькович 11.1
Росія Пушкін Олександр Сергійович 13.4
distance: 200
Чехія Кондур Марія Василівна 11.2
Білорусь Вовкодав Максим Олегович 10.4
США Петренко Іван Петрович 9.76
distance: 110
Англія Баюрський Андрій Ростиславович 8.4
Франція Бабійчук Анастасія Віталіївна 8.21
Китай Островський Анатолій Афанасійович 10.2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2014, 16:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не связные списки (C++):

Связные списки - C++
Я практически полный нуб в С++. Вот такая задача: В столовой предлагаются N комплексных обедов, состоящих из Q блюд. Известна стоимость и...

Связные списки - C++
Доброго времени суток. И у меня такая проблема - не могу разобраться со связными списками. Не могли бы вы помочь мне с этим, допустим,...

Связные списки. - C++
Всем привет ребят можете привести пример двусвязносго списка.

Связные списки - C++
Написать функцию, удаляющую из исходной строки заданный символ. Например, удаление символа ‘i’ из строки “cabin heating” дает в результате...

Связные списки - C++
Вот есть код все работает отлично но препод сказал что-бы при вводе элементов в список элементы сортировались вот к примеру 20 5 8 12 1 10...

Связные списки - C++
Друзья, помогите исправить код!!! Программа описывет таблицу о книгах.(Название, автор, стоимость). Почему он поддчеркивает head, next,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2014, 16:54
Привет! Вот еще темы с ответами:

Связные списки - C++
Помогите пожалуйста осуществить в программе вот такие вот действия: 1) добавление элементов в начало связного списка; 2)добавление...

связные списки - C++
12. Використовувати (лінійні) односпрямовані списки без заголовної ланки (мал. а) або з заголовною ланкою (мал. б) при наступному їхньому...

Связные списки - C++
12. Использовать (линейные) однонаправленные списки без заглавной звена (рис. А) или с заглавной звеном (рис. Б) при последующем их...

Массивы и связные списки - C++
Нужно взять како-то небольшой текст и напечатать все слова, которые начинаются с буквы, отличную от буквы, с которой начинается первое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru