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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
#1

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

23.12.2010, 19:42. Просмотров 1325. Ответов 5
Метки нет (Все метки)

Вот мой чудо-код, но он походу только *.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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2010, 19:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С++ бинарные файлы (C++):

бинарные файлы, C++ - C++
Работа с двоичными файлами. Создать файл состоящий из n-вещественных чисел. Найти сумму всех положительных чисел данного файла.

Бинарные файлы - C++
Прошу помочь с новыми задачками

Бинарные файлы - C++
Ребята, нужна Ваша помощь. Как реализовать вот эту штуку ? Буду признателен за любые идеи В первом файле хранится k матриц из n строк...

Бинарные файлы c++ - C++
Здравствуйте. Нужно в бинарный файл записать строку (нового стиля), единственное что известно, так это то, что в строке не более 16...

Бинарные файлы в С++ - C++
У меня есть програмка которая находит наименьший общий делитель числа#include&lt;iostream&gt; using namespace std; int main() { int n; ...

Бинарные файлы - C++
Ребята у вас есть какие та примеры программок работы с бинарными файлами, к примеры поменять местами максимальные и минимальные значения...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
23.12.2010, 20:10 #2
надеюсь вам эти ключи помогут
1
Миниатюры
С++ бинарные файлы  
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
24.12.2010, 22:12  [ТС] #3
О, да я вспомнил это. А вот команды не помню. Напомните пожалуйста.
И ещё после выполнения задачи нужно освободить память от динамического массива. Заранее спасибо.
0
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
26.12.2010, 10:54  [ТС] #4
Ну?
0
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
26.12.2010, 11:32 #5
Цитата Сообщение от Perfaratar Посмотреть сообщение
И ещё после выполнения задачи нужно освободить память от динамического массива.
Да, всё правильно.
Только у вас все массивы автоматические.
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
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;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2010, 12:08
Привет! Вот еще темы с ответами:

Бинарные файлы.. - C++
Доброго времени суток, господа! Возникла проблемка с открытием бинарного файла: char stroka; fstream bin_file; ...

Бинарные файлы - C++
Есть 2 текстовых файла .В первом информации представлена в след виде:номер и ФИО,во втором номер Группы,и оценки по предметам.Так мне нужно...

Бинарные файлы - C++
В файле содержатся числа. Сформировать из них матрицу, содержащую пять элементов в строке. Лишние числа отбросить. Вывести на печать...

Бинарные файлы - C++
Всем добрый день/вечер/ночь! У меня такой вопрос. Создал структуру и записал в файл. При записи в пошаговом режиме - все нормально....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.12.2010, 12:08
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru