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

Чтение из бинарного файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск минимального элемента массива. Найти ошибку http://www.cyberforum.ru/cpp-beginners/thread1052298.html
Вообщем написал программу для поиска минимального элемента массива, ну и по требованиям преподавателя нужно добавить 1 функцию и элементарное меню. До добавления всего этого добра, всё прекрасно работало. Прошу помощи D: До: #include <stdio.h> #include <iostream>
C++ Симметричная матрица Сформировать из элементов А, лежащих на главной диагонали и над ней, симметричную матрицу С (квадратная матрица С -симметричная, если Сij = Cji для любых i и j, при i≠j http://www.cyberforum.ru/cpp-beginners/thread1052297.html
где ошибка? C++
Здравствуйте! У меня есть задача: отсортировать четные элементы массива пирамидальной сортировкой. Вот код: #include <iostream> #include <conio.h> #include <ctime> using namespace std; void printArr(int arr, int count) {
C++ Работа с символами
Задача такая: задано 5 слов и с клавиатуры нужно ввести одно из этих 5-ти слов с ошибкой либо исказить одну букву либо на одну больше и программа должна сказать, что ошибка и написать слово правильно. Подскажите, пожалуйста, какие-нибудь идеи решение, и приблизительно как написать. Спасибо заранее.
C++ В матрице поменять местами два столбца http://www.cyberforum.ru/cpp-beginners/thread1052278.html
Помогите с кодом пожалуйста кто-то. В матрице с положительных действительных чисел поменять местами два столбца: столбец, который содержит максимальный элемент матрицы, и столбец, который содержит минимальный элемент матрицы. Большое спасибо.
C++ Решение задач Всем салам! Нам задали 30 задач на c++ кто сможет написать их ? подам 200 рублей на нашем 1000 тенге может и 1500-2000 тенге задачи лёгкие подробнее

Показать сообщение отдельно
Oberyn Martell
5 / 5 / 0
Регистрация: 15.05.2013
Сообщений: 36
23.12.2013, 09:21  [ТС]     Чтение из бинарного файла
Попробовал реализовать вот так вот, но значения считываются неправильно:
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
void Database::save(string file) {
        FILE* fout;
        file = file + ".bin";
        const char* name = file.c_str();
        if (( fout = fopen(name, "wb")) == NULL ) {
                // нет файла
                return;
        }
 
        int count;
        vector<Product>::iterator i = database_.begin();
        for(i; i != database_.end(); ++i) {
                count++;
        }
 
        fwrite(&count, sizeof(int), 1, fout);
        for(i = database_.begin(); i != database_.end(); ++i) {
                int
                        sizeName = i->getNameSize(),
                        sizeKol = i->getKolSize(),
                        sizeMesto = i->getMestoSize(),
                        sizePrice = i->getPriceSize(),
                        sizePostav = i->getPostavSize();
 
                fwrite(&sizeName, sizeof(int), 1, fout);
                fwrite(&sizeKol, sizeof(int), 1, fout);
                fwrite(&sizeMesto, sizeof(int), 1, fout);
                fwrite(&sizePrice, sizeof(int), 1, fout);
                fwrite(&sizePostav, sizeof(int), 1, fout);
 
                long kol = i->getKol();
                float price = i->getPrice();
 
                fwrite(&kol, sizeKol, 1, fout);
                fwrite(&price, sizePrice, 1, fout);
 
                char buf [1];
 
                strcpy(buf, i->getName().c_str());
                fwrite(&buf, sizeName, 1, fout);
 
                strcpy(buf, i->getMesto().c_str());
                fwrite(&buf, sizeMesto, 1, fout);
 
                strcpy(buf, i->getPostav().c_str());
                fwrite(&buf, sizePostav, 1, fout);
        }
        fclose (fout);
}
 
void Database::zagruz(string file) {
        int count = 0;
        long kol;
        float price;
        string name, mesto, postav;
        FILE* fout;
        file = file + ".bin";
        const char* nameFile = file.c_str();
        Product a;
        if (( fout = fopen(nameFile, "rb")) == NULL ) {
                // нет файла
                return;
        }
        fread(&count, sizeof(int), 1, fout);
        for(int i = 0; i < count; i++) {
                int
                        sizeName = 0,
                        sizeKol = 0,
                        sizeMesto = 0,
                        sizePrice = 0,
                        sizePostav = 0;
 
                fread(&sizeName, sizeof(int), 1, fout);
                fread(&sizeKol, sizeof(int), 1, fout);
                fread(&sizeMesto, sizeof(int), 1, fout);
                fread(&sizeMesto, sizeof(int), 1, fout);
                fread(&sizePrice, sizeof(int), 1, fout);
                fread(&sizePostav, sizeof(int), 1, fout);
 
                fread(&kol, sizeKol, 1, fout);
                fread(&price, sizePrice, 1, fout);
 
                char buf[1];
 
                fread(&buf, sizeName, 1, fout);
                name = buf;
 
                fread(&buf, sizeMesto, 1, fout);
                mesto = buf;
 
                fread(&buf, sizePostav, 1, fout);
                postav = buf;
 
                dobavProduct(name, kol, price, postav);
        }
        fclose(fout);
 
}
 
Текущее время: 14:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru