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

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

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

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

29.11.2011, 22:43. Просмотров 972. Ответов 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++
Добрый день подскажите плиз что не так уже голова распухла #include&lt;fstream&gt; #include&lt;iostream&gt; using namespace std; void...

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. - C++
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;locale.h&gt; #include&lt;iomanip&gt; #include &lt;cstdlib&gt; using namespace std; struct...

Позиционирование в потоке, переставить все нулевые элементы в начало файла - C++
создать функцию, которая с использованием функций позиционирования в потоке переставляет все нулевые элементы в начало файла содержащего...

Написать программу копирования файла. В конец каждой строки файла дописать количество пробелов в строке - C++
Чтение происходит блоками. Обработать ошибки Я пока просто смогла скопировать один файл в другой, а как добавить количество пробелов...

3
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.11.2011, 14:35 #2
не бывает файлов целого типа
не бывает чётных файлов
чтобы дописать что-то в начало файла, его нужно полностью переписать с помощью временного файла
0
freezz
Сообщений: n/a
30.11.2011, 16:04 #3
ну так это я и пытаюсь узнать...КАК???
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.11.2011, 16:45 #4
открой исходный файл
открой временный файл
читай элементы из исходного
записывай во временный нечётные элементы
перемотай исходный файл
читай элементы из исходного
записывай во временный все элементы
закрой исходный файл, открой его на запись
перемотай временный файл
перепиши всё из временного в исходный
(временный файл можно сохранить на диске
если программа выключится в середине, данные потеряются)
0
30.11.2011, 16:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2011, 16:45
Привет! Вот еще темы с ответами:

Как вернуть указатель файла на начало файла? - C++
Как в следующей программе вернуть указатель в начало файла после цикла while? #include &lt;iostream&gt; #include &lt;cstdlib&gt; using...

Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы второго файла и отрицательные элементы первого - C++
Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы второго файла и отрицательные элементы первого.

Заменить элементы главной диагонали элементами целого типа - C++
Найдите произведение всех положительных элементов матрицы размером 4x4, состоящей из элементов целого типа и замените им элементы главной...

Считывание с двоичного файла - C++
Всем доброго времени суток. Записал с помощью программы (своей) в один файл два изображения, с помощью второй программы пытаюсь их...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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