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

С++ бинарные файлы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
23.12.2010, 19:42     С++ бинарные файлы #1
Вот мой чудо-код, но он походу только *.txt файлы открывает, а мне нужно что бы и бинарные тоже. Прошу помощи!!!
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
 
using namespace std;
ofstream fout;
 
int **VvodSam(int& q)
{
    while(q<3)
    {
        cout<<"Vvedite razmer matrici:";
        cin>>q;
        if(q<=2)
        {
            cout<<"Vse elementi matrici isklucheni giagonalami."<<endl;
            cout<<"Vvedite bol'shij razmer."<<endl<<endl;
        }
    }
    int **mat=NULL;
    mat=new int*[q];
    for(int i=0;i<q;i++)
    {
        mat[i]=new int[q];
        for(int j=0;j<q;j++)
        {
            cout<<"Vvedite element nomer ["<<i+1<<"]["<<j+1<<"]:";
            cin>>mat[i][j];
        }
    }
    cout<<endl;
    cout<<"Matrica kotoruju vi vveli:";
    cout<<endl;
    for(int i=0;i<q;i++)
    {
        for(int j=0;j<q;j++)
        {
            cout<<""<<mat[i][j]<<" ";
        }
        cout<<endl;
    }
    return mat;
}
int **SluZap(int& q)
{
    while(q<3)
    {
        cout<<"Vvedite razmer matrici:";
        cin>>q;
        if(q<=2)
        {
            cout<<"Vse elementi matrici isklucheni giagonalami."<<endl;
            cout<<"Vvedite bol'shij razmer."<<endl<<endl;
        }
    }
    int **mat=NULL;
    mat=new int*[q];
    for(int i=0;i<q;i++)
    {
        mat[i]=new int[q];
        for(int j=0;j<q;j++)
        {
            mat[i][j]=rand()%10;
        }
    }
    cout<<endl;
    cout<<"Matrica kotoruju vi vveli:";
    cout<<endl;
    for(int i=0;i<q;i++)
    {
        for(int j=0;j<q;j++)
        {
            cout<<""<<mat[i][j]<<" ";
        }
        cout<<endl;
    }
    return mat;
}
int **VvodFile(int& q)
{
    char f[200];
    while(q<3)
    {
        cout<<"Vvedite razmer matrici:";
        cin>>q;
        if(q<=2)
        {
            cout<<"Vse elementi matrici isklucheni giagonalami."<<endl;
            cout<<"Vvedite bol'shij razmer."<<endl<<endl;
        }
    }
    cout<<"Vvedite imja fajla iz kotorogo butit vzjata matrica:";
    cin>>f;
    ifstream in(f);
    int **mat=NULL;
    mat=new int*[q];
    for(int i=0;i<q;i++)
    {
        mat[i]=new int[q];
        for(int j=0;j<q;j++)
        {
            in>>mat[i][j];
        }
    }
    in.close();
    cout<<endl;
    cout<<"Matrica kotoruju vi vveli:";
    cout<<endl;
    for(int i=0;i<q;i++)
    {
        for(int j=0;j<q;j++)
        {
            cout<<""<<mat[i][j]<<" ";
        }
        cout<<endl;
    }
    return mat;
}
char *ZapisFile()
{
    char l[200];
    cout<<"Vvedite imja fajla kuda butit zapisan rezultat:";
    cin>>l;
    fout.open(l);
    return l;
}
int Zadacha(int **mat, int q)
{
    int s1=0, s2=0, s3=0, s4=0, max=0;
    for(int i=0;i<q;i++)                
    {
        for(int j=0;j<q;j++)
        {
            if(j<(q-1-i) && j>i)    
            s1+=mat[i][j];          
            if(j>(q-1-i) && j>i)    
            s2+=mat[i][j];          
            if(j>(q-1-i) && j<i)    
            s3+=mat[i][j];          
            if(j<(q-1-i) && j<i)
            s4+=mat[i][j];          
        }
    }           
    cout<<"Suma pervogo sektora:"<<s1<<" "; 
    cout<<endl;
    cout<<"Suma vtorogo sektora:"<<s2<<" ";
    cout<<endl;
    cout<<"Suma tretego sektora:"<<s3<<" ";
    cout<<endl;
    cout<<"Suma chetvertogo sektora:"<<s4<<" ";
    cout<<endl;
    cout<<endl;
    fout<<"Suma pervogo sektora:"<<s1<<" "; 
    fout<<endl;
    fout<<"Suma vtorogo sektora:"<<s2<<" ";
    fout<<endl;
    fout<<"Suma tretego sektora:"<<s3<<" ";
    fout<<endl;
    fout<<"Suma chetvertogo sektora:"<<s4<<" ";
    fout<<endl;
    fout<<endl;
    if (s1>s2 && s1>s3 && s1>s4) max=s1;    
    if (s2>s1 && s2>s3 && s2>s4) max=s2;
    if (s3>s2 && s3>s1 && s3>s4) max=s3;
    if (s4>s2 && s4>s3 && s4>s1) max=s4;
    cout<<"Naibolshaja suma:"<<max<<" ";
    fout<<"Naibolshaja suma:"<<max<<" ";
    cout<<endl;
    return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
    int **mat=0;
    char a=0;
    int q;
    cout<<"Programma iskluchaet giagonali matrici, kotorie deljat ee na chetie sektora."<<endl;
    cout<<"Na ekran vivoditsja summa elementov dlja kazhdogo sektora i max znachenie."<<endl<<endl;
    while(a!='1' && a!='2' && a!='3')
    {
        cout<<"Esli hotite zapolnit' matricu samostojate'lo vvedite 1."<<endl;
        cout<<"Esli hotite chto bi matrica zapolnilas' slucahno vvedite 2."<<endl;
        cout<<"Esli hotite vzat' matricu iz fajla vvedite 3."<<endl;
        cout<<"Vvod:";
        cin>>a;
        if(a!='1' && a!='2' && a!='3')
        {
            cout<<endl;
            cout<<"Vvedite sushestvujushij variant!!!"<<endl;
            a=0;
        }
    }
    cout<<endl;
    if(a=='1') mat=VvodSam(q);
    if(a=='2') mat=SluZap(q);
    if(a=='3') mat=VvodFile(q);
    ZapisFile();
    Zadacha(mat, q);
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2010, 19:42     С++ бинарные файлы
Посмотрите здесь:

Бинарные файлы.. C++
C++ Бинарные файлы
Бинарные файлы c++ C++
бинарные файлы, C++ C++
Бинарные файлы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
23.12.2010, 20:10     С++ бинарные файлы #2
надеюсь вам эти ключи помогут
Миниатюры
С++ бинарные файлы  
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
24.12.2010, 22:12  [ТС]     С++ бинарные файлы #3
О, да я вспомнил это. А вот команды не помню. Напомните пожалуйста.
И ещё после выполнения задачи нужно освободить память от динамического массива. Заранее спасибо.
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
26.12.2010, 10:54  [ТС]     С++ бинарные файлы #4
Ну?
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
26.12.2010, 11:32     С++ бинарные файлы #5
Цитата Сообщение от Perfaratar Посмотреть сообщение
И ещё после выполнения задачи нужно освободить память от динамического массива.
Да, всё правильно.
Только у вас все массивы автоматические.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
26.12.2010, 12:08     С++ бинарные файлы #6
Цитата Сообщение от eczo Посмотреть сообщение
надеюсь вам эти ключи помогут
Нет, не помогут, это для Си.

Цитата Сообщение от Perfaratar Посмотреть сообщение
А вот команды не помню. Напомните пожалуйста.
http://cplusplus.com/reference/iostream/fstream/open/
И читать бинарный файл лучше read/write'ом
http://cplusplus.com/reference/iostream/istream/read/
http://cplusplus.com/reference/iostream/ostream/write/

Цитата Сообщение от Perfaratar Посмотреть сообщение
И ещё после выполнения задачи нужно освободить память от динамического массива.
Цитата Сообщение от Perfaratar Посмотреть сообщение
C++
1
2
3
4
int **mat=NULL;
mat=new int*[q];
for(int i=0;i<q;i++)
   mat[i]=new int[q];
C++
1
2
3
for (int i = 0; i < q; i++)
   delete [] mat[i];
delete [] mat;
Yandex
Объявления
26.12.2010, 12:08     С++ бинарные файлы
Ответ Создать тему
Опции темы

Текущее время: 02:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru