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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерный массив (расположить максимальные 10 элементов по главной диагонали) http://www.cyberforum.ru/cpp-beginners/thread715667.html
Дана целочисленная прямоугольная матрица: m = {{ 16, 78, 0, 6, -29, 19, -52, 65, -88, 51}, { -79, -22, 32, -25, -62, -69, -2, -59, -75, 89}, { -87, 95, -22, 85, -49, -75, 76, 73, -59, -52}, { 30, 49, -28, -48, 0, 57, -6, -85, 0, -18}, { -99, -21, -95, 64, 22, -2, 69, -84, -1, -71}, { -25, 47, 72, 43, 15, -44, 44, 61, 4, 74},...
C++ С++ принадлежат ли точки области, препод дала кривую задачку в пример только поступил, препод в пример дала эту задачку, помогите поправить #include "stdafx.h"; #include <math.h> void main () { float x,y,count << "\n enter x,y" http://www.cyberforum.ru/cpp-beginners/thread715665.html
C++ Удаление максимального элемента списка
Есть двусвязный список, нужно удалить в нем максимальный элемент. Подскажите, где ошибка. class Spisok { struct Entry { int value; Entry *pNext; Entry *pPrev; };
Перед каждым словом добавить слово C++
Перед каждым словом, начинающимся с буквы 'a' добавить слово "вот".
C++ Не могу представить (объяснить) http://www.cyberforum.ru/cpp-beginners/thread715648.html
#include <iostream> char board = {}; void clearscreen(){ for(int i = 0; i<40; i++){ std::cout<<std::endl; } }
C++ Не компилирует Code::Blocks 10.05 Программирую в среде Visual Studio 2010. Решил попробовать CodeBlocks. Установил всё точно так, как прописано здесь: http://iguania.ru/uchebnik-po-osnovam-programmirovaniya-dlya-nachinaiuschich/glava-4-sreda-programmirovaniya.html Создал проект точно так, как написано здесь: http://iguania.ru/uchebnik-po-osnovam-programmirovaniya-dlya-nachinaiuschich/glava-5-pervaya-programma.html Но... подробнее

Показать сообщение отдельно
Olejan_one
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 106
Завершенные тесты: 2
01.12.2012, 22:45  [ТС]     Чтение бинарного файла
компилятор - вижуал студио 2010
на счет номера ошибки - просто появляется окошко виндовс(номер не указан) -"возникшая проблема привела к прекращению работы программы. виндовс закроет эту программу, а если есть известный способ устранения проблемы, уведомит вас об этом"
вот код
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
void file_man(FILE *afp)    //метод записи в файл
    {
 
        int sz = strlen(name);
        fwrite(&sz,sizeof(sz),1,afp);
        fwrite(name,sz,1,afp);
        int sz1 = strlen(surname);
        fwrite(&sz1,sizeof(sz1),1,afp);
        fwrite(surname,sz1,1,afp);
 
         int sz2 = strlen(otchestvo);
        fwrite(&sz2,sizeof(sz2),1,afp);
        fwrite(otchestvo,sz2,1,afp);
        int sz3 = strlen(mail);
        fwrite(&sz3,sizeof(sz3),1,afp);
        fwrite(mail,sz3,1,afp);
        fwrite(&tell,sizeof (tell),1,afp); 
        fwrite(&icq,sizeof (icq),1,afp);
        fwrite(&date.day,sizeof (date.day),1,afp);
        int sz4 = strlen(date.month);
        fwrite(&sz4,sizeof(sz4),1,afp);
        fwrite(date.month,sz4,1,afp);
        fwrite(&date.year,sizeof (date.year),1,afp);
 
 
//метод чтения из бинарного файла
void read_person(FILE *afp2)
    {
        int sz = 0;
        fread(&sz,sizeof(sz),1,afp2);
        if(name) delete[] name;
        name = new char[sz+1];
        name[sz] = 0;
        fread(name,sz,1,afp2);
        int sz1 = 0;
        fread(&sz1,sizeof(sz1),1,afp2);
        if(surname) delete[] surname;
        surname = new char[sz1+1];
        surname[sz1] = 0;
        fread(surname,sz1,1,afp2);
 
        int sz2 = 0;
        fread(&sz2,sizeof(sz2),1,afp2);
        if(otchestvo) delete[] otchestvo;
        otchestvo = new char[sz2+1];
        otchestvo[sz2] = 0;
        fread(otchestvo,sz2,1,afp2);
        int sz3 = 0;
        fread(&sz3,sizeof(sz3),1,afp2);
        if(mail) delete[] mail;
        mail = new char[sz3+1];
        mail[sz3] = 0;
        fread(mail,sz3,1,afp2);
        fread(&tell,sizeof (tell),1,afp2); 
        fread(&icq,sizeof (icq),1,afp2);
        fread(&date.day,sizeof (date.day),1,afp2);
        int sz4 = 0;
        fread(&sz4,sizeof(sz4),1,afp2);
        if(date.month) delete[] date.month;
        date.month = new char[sz4+1];
        date.month[sz4] = 0;
        fread(date.month,sz4,1,afp2);
        fread(&date.year,sizeof (date.year),1,afp2);
 
    }
//реализация методов в мэйне, методы у меня под кейсами (реализовано меню)
void main()
{
 
case 4:
        {
            FILE *fp=fopen("first.txt","wb");
            if ((fp = fopen("first.txt", "wb")) == NULL)
            {
                cout<<"error";
                _getch();   
                return;
            }
            for (int i=0;i<size;i++)
            {
                mas[i]->file_man(fp);  
            }
            fclose(fp);
        }
        break;
    case 5:
        {
 
            FILE* fp2=fopen("first.txt","rb");
            if ((fp2 = fopen("first.txt", "rb")) == NULL)
            {
                cout<<"error";
                _getch();   
                return;
            }
            cin>>size;
            for(int i=0;i<size;i++)
            {
                mas[i]->read_person(fp2);
 
            }
            for(int i=0;i<size;i++)
            {
                
                
                cout<<"person "<<i+1<<":\n"<<"name:"<<mas[i]->name<<
                " "<<mas[i]->surname<<" "<<mas[i]->otchestvo<<"\n"<<
                "e-mail:"<<mas[i]->mail<<endl;
                cout<<"birsday:"<<mas[i]->date.day<<"."<<mas[i]->date.month<<"."<<mas[i]->date.year<<"\n";
                cout<<"nomber telephone:"<<mas[i]->tell<<"\n";
                cout<<"nomber ICQ:"<<mas[i]->icq<<"\n";
            }
            fclose(fp2);
        }   
        break;
 
 
 
 
}
 
Текущее время: 04:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru