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

Бинарный файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму квадратов элементов четвертого столбца / k-й строки матрицы http://www.cyberforum.ru/cpp-beginners/thread648528.html
Дан двухмерный массив. Определить: 1. Сумму квадратов элементов четвертого столбца массива. 2. Сумму квадратов элементов k-й строки массива.
C++ Сформировать массив А из четных элементов исходного массива, а массив В - из нечетных Элементы массива Т формируются по правилу: Т(к)=15к-12. Сформировать массив А из четных элементов массива Т, а массив В- из нечетных(к=20) http://www.cyberforum.ru/cpp-beginners/thread648525.html
C++ Вывести звонкие согласные
В алфавитном порядке вывести все звонкие согласные, которые входят в каждое нечетное слово и не входят ни в одно четное слово
Переписать положительные элементы массива во второй, а остальные - в третий массив C++
Дан массив. Переписать его положительные элементы во второй массив, а остальные- в третий. Во втором и третьем массивах значения элементов первого массива должны быть записаны подряд с начала массива.
C++ Племя из М миссионеров http://www.cyberforum.ru/cpp-beginners/thread648521.html
Племя из М миссионеров и L людоедов нах-ся по одну сторону реки, через которую необходимо переправиться. В распоряжении имеется 1 лодка, которая может выдержать вес только K представителей этого племени(вес имеют одинаковый). Кроме того, если в какой-то момент времени число людоедов станет больше числа миссионеров, миссионеры будут съедены независимо от того, на каком берегу или в лодке это...
C++ системная ошибка в ходе выполнения программы (наверно несоответствие типов) #include <iostream> #include <string> #include <vector> int main(void){ using std::cout; using std::cin; using std::endl; using std::string; using std::vector; using std::getline; подробнее

Показать сообщение отдельно
igorrr37
1640 / 1268 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
08.09.2012, 15:31     Бинарный файл
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 <string>
#include <fstream>
#include <stdexcept>
#include <list>
 
int main ()
{
    try
    {
        std::string filePath("file.binary");
        std::fstream fs;
        // Создание бинарного файла с числами
        fs.open(filePath.c_str(), std::ios::out | std::ios::binary);
        if(!fs.is_open()) throw std::runtime_error("Unable to open output file");
        int arr[] = {-55,7,-6,6,6,55,55,-31,-76,0};
        fs.write(reinterpret_cast<const char*>(&arr), sizeof(arr));
        if(fs.bad()) throw std::runtime_error("write failed");
        fs.close();
        // Считывание чисел из файла в std::list
        fs.open(filePath.c_str(), std::ios::in | std::ios::binary);
        if(!fs.is_open()) throw std::runtime_error("Unable to open input file");
        std::list<int> list;
        for(int n; !fs.read(reinterpret_cast<char*>(&n), sizeof(n)).fail(); list.push_back(n))
        ;
        fs.clear();
        if(fs.gcount()) throw std::runtime_error("read failed");
        fs.close();
        std::cout << "list size is " << list.size() << std::endl;
        list.remove_if([](int n){return !(n % 2);}); // удаление из std::list чётных элементов
        // Запись std::list в файл
        fs.open(filePath.c_str(), std::ios::out | std::ios::binary);
        if(!fs.is_open()) throw std::runtime_error("Unable to open output file");
        std::cout << "odd list's elements: ";
        for(auto const val : list)
        {
            std::cout << val << "  ";
            fs.write(reinterpret_cast<const char*>(&val), sizeof(val));
        }
        if(fs.bad()) throw std::runtime_error("write failed");
        fs.close();
    }
    catch(std::exception const& e)
    {
        std::cerr << "Exception: " << e.what() << std::endl;
    }
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru