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

Считывание и запись структур в бинарный файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Одномерный массив. http://www.cyberforum.ru/cpp-beginners/thread62114.html
В одномерном массиве, состоящим из целых элементов, вычеслить: 1) Минимальный по модулю элемент массива 2) Сумму модулей элементов массива, расположенные после первого элемента, равному нулю. (массив задаёт пользователь не рендом)
C++ Символьные строки и функции Приветик всем, Я не могу понять, что от меня требуется: Разработать функцию. Функция - Left(s,l). Назначение - выравнивание строки s по левому краю до длины l. При реализации функции запрещается пользоваться функциями библиотек языка C. Примечания: В большинстве заданий необходимо предусмотреть работу функции при некорректном задании ее параметров. Помогите пожалуйста :-[ http://www.cyberforum.ru/cpp-beginners/thread62095.html
Отладка программы. C++
Не знаю даже условия, даны только какие-то выражения: http://s1.dump.ru/viewer/3727329/ попробовал сделать по шаблону, который дали, как-то не очень вышло: #include<iostream.h> #include<iomanip.h> #include<math.h> #include<conio.h> int main()
C++ Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент
Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент. Характеристикой строки целочисленной матрицы назовем сумму ее отрицательных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик. две задачи в одной :D
C++ Массивы. http://www.cyberforum.ru/cpp-beginners/thread62063.html
Имеется программа. Из файла считываю данные в массив. Далее этот массив делю на подстроки и вывожу на печать. Вот в чем проблема: если массив задать в самом коде (char S="12 45"), то все работает нормально. Если же данные считываю из файла, то на печать помимо самого массива выводятся посторонние символы. Вот код: #include <stdio.h> #include <iostream.h> #include <windows.h> int main(){...
C++ Вывести слова строки в порядке убывания длины требуется написать программу которая: -считает количество слов в предложении -выводит слова строки в порядке убывания ее длины -выводит на экран все слова с четным индексом Количество слов в тексте я уже посчитал, а вот с остальным пока проблема #include <vcl.h> #include <stdio.h> #include <string.h> подробнее

Показать сообщение отдельно
TheKnyazz
10 / 10 / 1
Регистрация: 27.04.2009
Сообщений: 30

Считывание и запись структур в бинарный файл - C++

08.11.2009, 15:13. Просмотров 2115. Ответов 1
Метки (Все метки)

Здравствуйте, я делаю автоподгрузку и авто сохранение некоторой структуры в бинарный файл. И где-то допустил грубую ошибку, ибо записывается правильно, а при считывании берутся клоны.
Подскажите, где проспал.
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
void save(myList* &FIRST,myList* &LAST)
{  workList z;
   myList *temp;
   temp=FIRST;
   const size_struct=sizeof(workList);
   ofstream save_file("d:\\base.dat",ios::binary|ios::out);
 
   if(save_file)
     {
       for (temp=FIRST;temp!=NULL;temp=temp->forward)
         {
             save_file.write((char *) &temp->data, size_struct);
         }
     }
   else {
           errormessage("Cannot save to type file");
           return;
        }
   save_file.close();
 
}
 
 
void load(void)
{ workList z;
   ifstream load_file("d:\\base.dat",ios::binary);
   if (load_file) {
        while(!load_file.eof()){
             load_file.read((char *) &z, sizeof(workList));
             ADD(z,FIRST,LAST);
        }
   }
   else{
       errormessage("Can't load file from Type file");
       return;
   }
   load_file.close();
}
И Функция ADD
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void ADD(const workList &z,myList* &FIRST,myList* &LAST)
{  myList *temp=new myList;
   temp->data=z;
       if(FIRST){
                 temp->back=LAST;
                 temp->forward=0;
                 LAST->forward=temp;
                 LAST=temp;
                }
          else {
                 temp->back=0;
                 temp->forward=0;
                 FIRST=LAST=temp;
               }
}
Заранее спасибо за помощь.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru