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

Построение односвязного списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск подстроки в строке с русскими и английскими буквами. strstr() не справляется http://www.cyberforum.ru/cpp-beginners/thread656838.html
Писал программку для отправки в инвиз окна, не работает поиск окна по заголовку, если в заголовке есть русские буквы. Пробовал разные комбинации AnsiToChar(), CharToAnsi(), CharToOem(), SetLocale() -...
C++ Освобождение и выделение памяти Помогите разобраться с программой, где здесь выделение памяти (как я понял это new) и где освобождение памяти. #include <iostream> #include <conio.h> using namespace std; struct train {... http://www.cyberforum.ru/cpp-beginners/thread656835.html
C++ Работа с файлами. С++
Доброго времени суток. В программировании полный ноль. Мог бы мне кто нибудь, объяснить как вывести из файла определенную (часть из общей) информацию и записать ее в отдельный. То есть есть...
вещественный массив C++
Здравствуйте возникла проблема, как сделать массив с вещественными числами, заменяя на float и double возникают ошибки,помогите разобраться #include "stdafx.h" #include"iostream"...
C++ вещественный массив http://www.cyberforum.ru/cpp-beginners/thread656823.html
Здравствуйте подскажите как переделать массив целых чисел ввещественный
C++ Бот для настольной игры Здравствуйте! Вопрос такой: насколько сложно написать простого бота для настольной игры(допустим для Counter Strike) ? Пожалуйста ответьте мне в таком формате: Язык, Опыт, Время (Пример)... подробнее

Показать сообщение отдельно
!Андрей!
6 / 6 / 0
Регистрация: 31.01.2012
Сообщений: 134

Построение односвязного списка - C++

23.09.2012, 22:28. Просмотров 1027. Ответов 3
Метки (Все метки)

Имеется следующая функция считывающая структуру из файла и создающая односвязный список.

Проблема в том, что если в файле > 1 э-та - список строиться не правильно. Т.е первый э-т правильно встаёт на head, а остальные - встают хз куда=>после этого прога рушиться(потому-что нельзя добавить э-ты в список) т.к. он не правильно построен после считывания из файла.

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
void readFromFile()
{
    numberOfElements = 0;
    FILE* file = fopen("data.bin", "rb");
    double fileSize = 0;
    fseek (file, 0, SEEK_END);
    fileSize = ftell(file);
    fclose (file);
    
    double result = fileSize / sizeof(data);
    cout << "In bin [" << result <<"] elements\n";
    
    elemOfQueue* temp;
    file = fopen("data.bin","rb");
    elemOfQueue* current = head;
    while(result)
    {  
        temp = new elemOfQueue, fread(temp,sizeof(data),1,file);
        if(head==NULL) 
            {
                head=temp;
                temp->next=NULL;
            }
        else 
        {
            while(current != NULL)
                current = current->next;
 
            current= temp;
            current->next = NULL;
        };
 
        numberOfElements++;
        result--;
    };         
        fclose(file);
    }
Добавлено через 3 минуты
Если в файле - одна запись, то всё работает отлично.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.