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

Запись/вывод структуры в файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Визуальная среда. Свойства формы. http://www.cyberforum.ru/cpp-beginners/thread130059.html
Нужна помощь. Проблема в следующем: хотелось бы сделать невозможным изменение размеров формы, но, если ставлю AutoSize=true, то размеры формы изменить нельзя, но они ставятся очень маленькими, строго ограничиваясь размерами элементов, размещенных на форме, игнорируя атрибуты Height и Width. Как выйти из положения?
C++ Решите по C++ с объяснениями Пожалуйста помогите решить задачи с объяснениями. Заранее, спасибо. 1. Создать класс Massiv (матрица вещественных чисел), количество строк и столбцов константные поля. Ввод размера матрицы осуществляется в главной функции. Найти максимальное количество его одинаковых элементов. 2. Написать класс обработчик исключительных ситуаций. Программа ловит ошибку деление на нуль и выводит сообщение,... http://www.cyberforum.ru/cpp-beginners/thread130039.html
Массив... C++
Дан одномерный массив целых чисел A40. Массив заполнить значениями путем ввода с клавиатуры. Проверить, является ли левая половина массива (первые 20 элементов) точной копией правой половины массива (следующие 20 элементов). Если это так, выдать на экран сообщение “Копия”, в противном случае на экран вывести количество не совпавших элементов. Если можно сделайте полное тело программы ,а то в...
C++ Функция window()
Здравствуйте уважаемые гуру! Напишите пожайлуста мне функцию установки размера рабочей области консоли. Испульзую gcc, на dec c++, но функцию window() он не видет, которая по идеи должна быть расположена в conio.h. Заранее благодарен за помощь.
C++ Преобразовать массив!!! http://www.cyberforum.ru/cpp-beginners/thread130030.html
Всем привет!помогите,кто сможет!вот задача,но не до конца.....там нужно закончить третьим заданием! 3)преобразовать массив таким образом,чтобы сначала распологались все элементы,целая часть которых не привышает 1,а потом все остальные! вот!заранее спасибо! #include<stdio.h> #include<math.h> #include<stdlib.h> void main() {
C++ Как вернуть массив? Как вернуть массив из функции и узнать его размер? подробнее

Показать сообщение отдельно
DJFile
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 31
15.05.2010, 19:03     Запись/вывод структуры в файл
Здравствуйте. Само задание:
Написать функцию, которая динамически выделяет память под массив структур (не меньше шести элементов), заполняет его данными в режиме диалога и записывает массив в бинарный файл. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах. Написать функцию, которая запрашивает данные о сканере в режиме диалога и замещает записи в бинарном файле по заданному номеру. Обязательный параметр — номер замещаемой записи. Функция должна возвращать нулевое значение, если запись прошла успешно, и -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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "fstream"
#include "iostream"
using namespace std;
 
struct scan_info{
    char model[25]; // наименование модели
    int price; // цена
    double x_size; // горизонтальный размер области сканирования
    double y_size; // вертикальный размер области сканирования
    int optr; // оптическое разрешение
    int grey; // число градаций серого
};
 
void write_file(const char *file_name, const int num_w);
 
int main(){
    setlocale(LC_CTYPE, "Russian_Russia.1251");
    cout << "Введите имя файла для записи:";
    char file_name[15];
    cin >> file_name;
    cout << "Введите число записей:";
    int num_w;
    cin >> num_w;
    cin.ignore(1);
    write_file(file_name, num_w);
    system("pause");
    return 0;
}
 
void write_file(const char *file_name, const int num_w){
    scan_info *Scaners = new scan_info[num_w];
    ofstream fout(file_name, ios::out | ios::binary);
    if(fout.fail()){
        cerr << "Ошибка открытия выходного файла";
        exit(1);
    }
    fout.write((char*)&num_w,2);
    /*Ввод структуры*/
    for(int i=0; i<num_w; i++){
        cout << "\nЗапись №"<<i+1;
        cout << "\nВведите модель:";
        cin.getline(Scaners[i].model, 24);
        fout.write(Scaners[i].model, sizeof Scaners[i].model);
        cout << "Введите цену:";
        cin >> Scaners[i].price;
        fout.write((char*)&Scaners[i].price, 5);
        cout << "Введите горизонтальный размер области сканирования:";
        cin >> Scaners[i].x_size;
        fout.write((char*)&Scaners[i].x_size, 5);
        cout << "Введите вертикальный размер области сканирования:";
        cin >> Scaners[i].y_size;
        fout.write((char*)&Scaners[i].y_size, 5);
        cout << "Введите оптическое разрешение:";
        cin >> Scaners[i].optr;
        fout.write((char*)&Scaners[i].optr, 5);
        cout << "Введите число градаций серого:";
        cin >> Scaners[i].grey;
        fout.write((char*)&Scaners[i].grey, 5);
        cin.ignore(1);
    }
    fout.close();
}
Подскажите, всё ли верно? А то в файле китайские иероглифы какие-то, только слова норм? И как потом такой файл считать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru