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

Как спростить даный код?[бинарные файлы] - C++

Восстановить пароль Регистрация
 
cHuVbaka
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 120
26.12.2013, 08:33     Как спростить даный код?[бинарные файлы] #1
В двоичном файле целого типа поменять местами элементы, стоящие на четных местах с элементами, стоящими на нечетных местах
C++ (Qt)
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
#include "StdAfx.h"
#include <iostream>
#include <fstream>
 
using namespace std;
 
class bin_stream
    : public fstream 
{   
public:
    bin_stream(const char *fn)
        : fstream(fn, ios::out | ios::in | ios::binary | ios::trunc) 
    {
    }
    void doneOurDate(const void*, int, int);
    bin_stream &operator<<(int d) 
    {  
        doneOurDate(&d, sizeof(d),0);
        return *this;  
    }
    bin_stream &operator>>(int &d) 
    {  
        doneOurDate(&d, sizeof(d),1);
        return *this;  
    }
};
 
 
int main()
{
    int in;
    int element;
    int chetn,ne4etn;
    setlocale(LC_CTYPE, "rus");
    bin_stream bin_out("Binarnik.dat");
    if(!bin_out){cout<<"ErRoo\r"; exit(1);}
    for(int i=1;i<=4;i++)
    {
        element=i;
        bin_out<<element;
        
    }
    bin_out.seekp(0,ios::beg);
    for(int i=1;i<=4;i++)
    {
        
        bin_out>>element;
        cout<<element<<" ";
    }
    bin_out.seekp(0,ios::beg);
 
   for(int i = 1; i <= 4; i++)
    {
        if(i % 2 != 0)
        {
            bin_out >> in;
            ne4etn = in;
        }
        else
        {
            bin_out >> in;
            chetn = in;
            
            int t;
            t = ne4etn;
            ne4etn = chetn;
            chetn = t;
            cout << endl << ne4etn << chetn << endl;
            
            bin_out.seekp(-2 * (int)sizeof(int), ios::cur);
            bin_out << ne4etn;
            bin_out << chetn;
        }
    }
    cout<<endl;
    bin_out.seekp(0,ios::beg);
    for(int i=1;i<=4;i++)
    {
        
        bin_out>>element;
        cout<<element<<" ";
    }
    system("pause");
    return 0;
}
void bin_stream::doneOurDate(const void *Ptr, int len, int sign) 
{   
    if (!Ptr) return;
    if (len <= 0) return;   
    if (sign==0) write((char*)Ptr, len);
    else read((char*)Ptr, len);  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2013, 08:33     Как спростить даный код?[бинарные файлы]
Посмотрите здесь:

Бинарные файлы.. C++
C++ Бинарные файлы
бинарные файлы, C++ C++
Бинарные файлы C++
C++ Бинарные файлы
Бинарные файлы.как найти? C++
Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности) C++
Бинарные файлы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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