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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ обработка строк http://www.cyberforum.ru/cpp-beginners/thread325808.html
заменить в тексте одно словосочетание другим
C++ обработка файлов Записать в файл п произвольных натуральных чисел Переписать в другой файл те элементы, которые кратны К. Вывести полученный файл на печать. http://www.cyberforum.ru/cpp-beginners/thread325794.html
Двунаправленный список C++
Вставка элемента в список. Удалениеэлемента из списка Сортировка списка. Поиск элемента в списке.Объединение двух списков Пересечение двух списков.Посоветуйте что ли литературу какую нибудь,где куча примеров по данной теме и хорошо всё описано.А то я не доконца понимаю с чем столкнулся.
Необходимо провести анализ следующей последовательности данных: C++
Добрый день уважаемые профи. Необходимо провести анализ следующей последовательности данных: 000004 D3EA9 000005 6620E 004096 68EEF 065536 20393 010383 C29B6 010384 E361C
C++ кодинг в никсе http://www.cyberforum.ru/cpp-beginners/thread325720.html
сПоставил Минт 10. пробую "привет мир" вот ответ компилятора chertopolox@ChertopoloX ~ $ g++ No_name.cpp -o noname No_name.cpp:3: warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x No_name.cpp:4: error: expected ‘}’ before ‘;’ token No_name.cpp:4: error: invalid conversion from ‘void*’ to ‘int’ No_name.cpp:5: error: expected unqualified-id before ‘return’...
C++ Может ли купить покупатель вещь стоимости S так, чтобы у продавца нашлась точная сдача У покупателя есть n монет достоинством H(1),...,H(n). У продавца есть m монета достоинством B(1),...,B(1). Может ли купить покупатель вещь стоимости S так, чтобы у продавца нашлась точная сдача (если она необходима). подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
27.06.2011, 10:53     Удалить из бинарного файла, в котором записаны целые числа все четные элементы
С проверками и без изменения порядка байтов.
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
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
 
struct IsOdd
{
    bool operator() (int const& a) const { return a&1; }
};
 
using namespace std;
 
int main()
{
    int const BUF_SIZE = 4096;
    vector<int> data;
    int buf[BUF_SIZE];
 
    fstream fstrm("file.dat", ios::binary|ios::in);
    if (!fstrm)
    {
        cerr << "Can't open file for reading" << endl;
        return -1;
    }
 
    // читаем поблочно и сохраняем в векторе только нечётные
    while (fstrm.read((char*)&buf[0], sizeof(buf)), fstrm.gcount())
        remove_copy_if(buf, buf+fstrm.gcount()/4, back_inserter(data), IsOdd());
 
    fstrm.close();
 
    fstrm.open("file.dat", ios::binary|ios::out);
    if (!fstrm)
    {
        cerr << "Can't open file for writing" << endl;
        return -1;
    }
    
    // сохраняем вектор обратно в файл
    fstrm.write((char*)&data[0], data.size()*sizeof(data[0]));
    if (!fstrm)
    {
        cerr << "Writing error" << endl;
        return -1;
    }
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru