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

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

Войти
Регистрация
Восстановить пароль
 
freezz
Сообщений: n/a
#1

В начало двоичного файла целого типа дописать нечетные элементы этого файла. - C++

29.11.2011, 22:43. Просмотров 889. Ответов 3
Метки нет (Все метки)

Вот прога для записи четных файлов...в конец
Мне нужно в начало....нечетные...помогите разобраться как сделать!!!

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
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
int main()
{ int a;
    srand((unsigned int)time(0));
    {
        cout << "Writing to file:" << endl;
        ofstream out("numbers.bin",ios::binary);
        for (int i = 0; i < 10; i++)
        {
            int number = rand()%9;
            out.write((const char*)&number,sizeof(int));
            cout << number << " ";
        }
        cout << endl;
    }
 
    {
 
    fstream in_out("numbers.bin",ios::binary|ios::in|ios::out);
    if (!in_out)
    {
        cout << "error! opening numbers.bin!" << endl;
        return 0;
    }
 
    in_out.seekg(0,ios::end);
    int numNumbers = in_out.tellg()/sizeof(int);
    if (!numNumbers)
    {
        cout << "error! no numbers!" << endl;
    }
 
    cout << "Read from file:" << endl;
    int lastPos = numNumbers;
    for (int j = 0; j < numNumbers; j++)
    {
        int n;
        in_out.seekg(j*sizeof(int),ios::beg);
        in_out.read((char*)&n,sizeof(int));
        cout << n << " ";
        if ((n%2) == 0)
        {
            in_out.seekp(lastPos*sizeof(int),ios::beg);
            in_out.write((const char*)&n,sizeof(int));
            lastPos++;
        }
    }
    cout << endl;
    
    }
 
    ifstream f("numbers.bin",ios_base::binary);
    f.seekg(0,ios::end);
    int numNumbers = f.tellg()/sizeof(int);
    if (!numNumbers)
    {
        cout << "error! no numbers!" << endl;
    }
    f.seekg(0,ios::beg);
    cout << "File test after writing even numbers at the end:" << endl;
    for (int j = 0; j < numNumbers; j++)
    {
        int number;
        f.read((char*)&number,sizeof(int));
        cout << number << " ";
    }
    cout << endl;
cin >>a;
    return 0;
}
Добавлено через 21 минуту
ios::end я так понял нужно заменить на ios::beg....для вставки в начало списка...

Добавлено через 40 минут
пацаны...срочно нужно!!

Добавлено через 1 час 8 минут
для нечетного if ((n%2) == 0) меняем на if ((n%2) != 0)...
кто с началом списка помочь может???есть хоть кто то разбирающийся
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 22:43     В начало двоичного файла целого типа дописать нечетные элементы этого файла.
Посмотрите здесь:

Чтени из двоичного файла C++
C++ Дописать символ в начало файла
C++ Считывание с двоичного файла
C++ Создание двоичного файла на С++
использование двоичного файла C++
Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы второго файла и отрицательные элементы первого C++
C++ Запись двоичного файла
C++ Считывание из двоичного файла
Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. C++
В начало бинарного файла целого типа нужно дописать его минимальное значение, а в конец максимальное C++
C++ Позиционирование в потоке, переставить все нулевые элементы в начало файла
Заменить элементы главной диагонали элементами целого типа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.11.2011, 14:35     В начало двоичного файла целого типа дописать нечетные элементы этого файла. #2
не бывает файлов целого типа
не бывает чётных файлов
чтобы дописать что-то в начало файла, его нужно полностью переписать с помощью временного файла
freezz
Сообщений: n/a
30.11.2011, 16:04     В начало двоичного файла целого типа дописать нечетные элементы этого файла. #3
ну так это я и пытаюсь узнать...КАК???
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.11.2011, 16:45     В начало двоичного файла целого типа дописать нечетные элементы этого файла. #4
открой исходный файл
открой временный файл
читай элементы из исходного
записывай во временный нечётные элементы
перемотай исходный файл
читай элементы из исходного
записывай во временный все элементы
закрой исходный файл, открой его на запись
перемотай временный файл
перепиши всё из временного в исходный
(временный файл можно сохранить на диске
если программа выключится в середине, данные потеряются)
Yandex
Объявления
30.11.2011, 16:45     В начало двоичного файла целого типа дописать нечетные элементы этого файла.
Ответ Создать тему
Опции темы

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