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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ указатель на строку типа Integer http://www.cyberforum.ru/cpp-beginners/thread637113.html
Необходимо в тэг компонента записать указатель на строку. Можно ли задать указатель на строку типа Integer напрямую? я делал так String Str = "Hello"; String * pStr; pStr = &Str; Edit1->Tag=int(pStr); При компиляции ошибок нет. Но программа выдает не корректное значение.
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' || str == '9' || str == '0' || str == '-') { char *temp = str; //тут арет 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'; previous = current; }
C++ Системное программирование http://www.cyberforum.ru/cpp-beginners/thread637051.html
Давно интересует меня такой вопрос, имею книгу "Системное программирование в Windows" (автор Александр Побегайло). Хотелось бы услышать ваше мнения по поводу востребованности данного направления программирования. Должен ли эту тему знать каждый программист и в какой сфере это найболие актуально? А то чувствую на усвоение данной книги у меня уйдет огромное количество времени.
C++ Задача на рекурсию Помогите решить след. задачу: Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Выведите все нечетные числа из этой последовательности, сохраняя их порядок. В этой задаче нельзя использовать глобальные переменные и передавать какие-либо параметры в рекурсивную функцию. Функция получает данные, считывая их с клавиатуры. Функция не возвращает значение, а... подробнее

Показать сообщение отдельно
moskitos80
 Аватар для moskitos80
39 / 39 / 0
Регистрация: 04.10.2011
Сообщений: 128
13.08.2012, 17:33     Бинарные чтение/запись объектов
Всем привет. Люди добрые - поможите пожалуйста Написал такой код:
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 раза!

Никак не пойму в чём дело. Пытался открывать получающийся бинарник - очень похоже, что записи там каждая в одном экземпляре, а последняя почему-то выводится дважды... Подскажите пожалуйста, где я напортачил?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru