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

Бинарные чтение/запись объектов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ указатель на строку типа Integer http://www.cyberforum.ru/cpp-beginners/thread637113.html
Необходимо в тэг компонента записать указатель на строку. Можно ли задать указатель на строку типа Integer напрямую? я делал так String Str = "Hello"; String * pStr; pStr = &Str;...
C++ В чем ошибка? char* deleter(char *str) { char *god; for(int i = 0;i < strlen(str);i++) { if(str == '1' || str == '2' || str == '3' || str == '4' || str == '5' || str == '6' || str == '7' || str == '8'... http://www.cyberforum.ru/cpp-beginners/thread637111.html
Дан двумерный массив Х размером n*m, заполненный случайными числами. C++
Тема: Матрицы. Дан двумерный массив Х размером n*m, заполненный случайными числами. Вычислить сумму элементов с индексами кратными 3, среднее арифметическое всех четных элементов. Определить, есть...
C++ объяснения по коду
#include "std_lib_facilities.h" int main() { string previous = " "; string current; while (cin>>current) { if (previous == current) cout <<"повторяющееся слово:"<<current<< '\n';...
C++ Системное программирование http://www.cyberforum.ru/cpp-beginners/thread637051.html
Давно интересует меня такой вопрос, имею книгу "Системное программирование в Windows" (автор Александр Побегайло). Хотелось бы услышать ваше мнения по поводу востребованности данного направления...
C++ Задача на рекурсию Помогите решить след. задачу: Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Выведите все нечетные числа из этой последовательности, сохраняя их порядок. В... подробнее

Показать сообщение отдельно
moskitos80
61 / 61 / 10
Регистрация: 04.10.2011
Сообщений: 217
Завершенные тесты: 1

Бинарные чтение/запись объектов - C++

13.08.2012, 17:33. Просмотров 2053. Ответов 2
Метки (Все метки)

Всем привет. Люди добрые - поможите пожалуйста Написал такой код:
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
#include <iostream>
#include <fstream>
#include <iomanip>
 
using namespace std;
 
/////////////////////////////////////////////////////////////////////////////////
class Person {
    public :
        void setData(void)
        {
            cout << endl << "Enter name . . . "; cin >> this->name;
            cout << endl << "Enter age . . . ";  cin >> this->age;
        }
        void showData(void)
        {
            cout << "Name " << this->name << endl
                 << "Age  " << this->age  << endl;
        }
    protected :
        int age;
        char name[80];
};
/////////////////////////////////////////////////////////////////////////////////
 
int main()
{
    fstream file;
    file.open("PERSON.DAT", ios::in|ios::out|ios::app|ios::binary);
 
    Person pers;
    char choice;
    
    do {
        pers.setData();
        file.write(reinterpret_cast<char*>(&pers), sizeof(pers));
        cout << endl << "Enter more ? (y/n) . . . "; cin >> choice;
    } while (choice != 'n');
 
    file.seekp(ios::beg);
    
    cout << endl << "RESULT: " << endl << endl;
 
    while (!file.eof()) {
        file.read(reinterpret_cast<char*>(&pers), sizeof(pers));
        pers.showData();
        cout << setw(80) << setfill('-') << "" << endl;
    }
 
    return 0;
}
Он просто создаёт файл "PERSON.DAT" в директории, в которой он находится, а потом запрашивает данные у пользователя, и записывает объекты (или наверное правильнее "снимки" объектов) в этот файл. А затем из этого же файла читает данные и выводит в консоль. Беда в том, что последнюю запись он считывает 2 раза!

Никак не пойму в чём дело. Пытался открывать получающийся бинарник - очень похоже, что записи там каждая в одном экземпляре, а последняя почему-то выводится дважды... Подскажите пожалуйста, где я напортачил?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.