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

В начало бинарного файла целого типа нужно дописать его минимальное значение, а в конец максимальное - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Отличие istreambuf_iterator от istream_iterator http://www.cyberforum.ru/cpp-beginners/thread1178213.html
Прочитал все найденные похожие темы... Протестировал все, что можно... Но отличий так найти и не смог этих двух итераторов... Оба являются адаптерами на входные потоки... Чем же они отличаются?
C++ Игра "жизнь" - разобраться в коде помогите разобраться в коде #define SIZE 20 int a,b; int chk(int x, int y) { int i=0; if (a==1) i++; if (a==1) i++; http://www.cyberforum.ru/cpp-beginners/thread1178210.html
Стивен Прата Язык программирования C++ лекции и упражнения (6-е издание). Листинг 6.8 - странная штука C++
Извиняюсь заранее, если было уже где-то - я не нашел( Штудирую Прату 6-е издание. Полностью перекопировал Листинг 6.8.: #include <iostream> #include <cctype> int main() { using namespace std;
Несовместимые типы условной операции, макрос и шаблон C++
был такой класс class Matrix{ //код } такой макрос #define CURR(x) (somevar==1?(x##1):(x##2)) и 2 переменных Matrix M1,M2; теперь класс стал шаблонным
C++ Считать слова из файла в разные переменные http://www.cyberforum.ru/cpp-beginners/thread1178186.html
Есть txt файл со списком, в котором слова стоят через запятую (количество слов, разделенных запятой в каждой строчке одинаковое (6 слов)). В файле неизвестное количество строк. Нужно каждое слово из каждой строки распределить по переменным. Подскажите пожалуйста. Я просто новичок совсем
C++ Найти общее решение СЛАУ Ребят,ни у кого нет исходников на эту задачу?Я только удалил n-r уравнений.Если есть,буду очень благодарен)) подробнее

Показать сообщение отдельно
vl22d
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 12
16.05.2014, 21:37  [ТС]     В начало бинарного файла целого типа нужно дописать его минимальное значение, а в конец максимальное
а как это правильно написать? что то у меня не получаеться

Добавлено через 58 минут
я не понимаю почему через команду SEEK_END максимальный элемент записывается сразу после минимального а не в конце
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
#include <stdio.h>
#include <iostream>
using namespace std;
 
void poisk()
{
    FILE *f;
    int i, n, *a;
    f = fopen("D:\\lab14.dat", "rb+");
    fread(&n, sizeof(int), 1, f);
    a = new int[n];
    fread(a, sizeof(int), n, f);
    int imax = 0;
    int imin = 0;
    int max = a[0];
    int min = a[0];
    for (i = 1; i < n; i++)
    {
        if (a[i]>max)
        {
            max = a[i];
            imax = i;
        }
        if (a[i] < min)
        {
            min = a[i];
            imin = i;
        }
    }
    fclose(f);
    f = fopen("D:\\lab14.dat", "wb+");
    for (i = 0; i < n + 2; i++)
    {
        int p = a[i];
        fwrite(&p, sizeof(int), 1, f);
    }
    fseek(f, 0 * sizeof(int), SEEK_SET);
    fwrite(&min, sizeof(int), 1, f);
    for (i = 0; i < n + 2; i++)
    {
        int p = a[i];
        fwrite(&p, sizeof(int), 1, f);
    }   
    fseek(f, 0 * sizeof(int), SEEK_END);
    fwrite(&max, sizeof(int), 1, f);
    for (i = 0; i < n + 2; i++)
    {
        int p = a[i];
        fwrite(&p, sizeof(int), 1, f);
    }
    fclose(f);
    f = fopen("D:\\lab14.dat", "rb+");
    for (i = 0; i < n + 2; i++)
    {
        fread(a, sizeof(int), n+2, f);
        cout << a[i] << " ";
    }
    fclose(f);
    
}
void vuvod()
{
    FILE *f;
    int i, n, *a;
    f = fopen("D:\\lab14.dat", "rb");
    fread(&n, sizeof(int), 1, f);
    cout << "n= "<< n << endl;
    a = new int[n];
    fread(a, sizeof(int), n, f);
    for (i = 0; i < n; i++)
        cout << a[i] << " ";
    fclose(f);
    cout << endl;
    
}
int main()
{
    int a, i, n;
    FILE *f;
    f = fopen("D:\\lab14.dat", "wb");
    cout << "n=";
    cin >> n;
    fwrite(&n, sizeof(int), 1, f);
    for (i = 0; i < n; i++)
    {
        cout << "a=";
        cin >> a;
        fwrite(&a, sizeof(int), 1, f);
    }
    fclose(f);
    vuvod();
    poisk();
    system("Pause");
}
 
Текущее время: 14:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru