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

Двоичный ввод-вывод - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ не могу решить... http://www.cyberforum.ru/cpp-beginners/thread304239.html
дана последовательность из n вещественных чисел.Первое число последовательности нечетное.Найти сумму всех подряд идущих нечетных числе.Условный оператор не использовать.
C++ Стеки Создать два стека из целых чисел, упорядоченных по возрастанию.Объединить стеки в один упорядоченный по возрастанию. Для этого написать функцию объединения и сохранения порядка. http://www.cyberforum.ru/cpp-beginners/thread304224.html
C++ извлечение по индефекатору символ
каким образом и какой функцыей извлечь индификатор из строки по индефекатору.
C++ чуть не понимаю..
1. Управление автомобилем. 2. Поездка на автомобиле. 3. Повреждение автомобиля. 4. Выбор автомобиля для покупки. 5. Диагностика неисправности и ремонт автомобиля. мысли есть...только не могу их совместить... особенно с повреждением...
C++ Двунаправленный список http://www.cyberforum.ru/cpp-beginners/thread304185.html
Как создать двунаправленный список из целых чисел? и как заменить повторяющиеся последовательности одним числом?
C++ Поиск элемента в файле int poslpoisk(int *mas,int k) {int rn1 , rn2 ,l, n=0,h ,dn,dk,z,r,i, iscomiy_element ; FILE *fd; fd=fopen("C:\1.txt","r+"); for(i=dn;i<=dk;i+=h) { mas=new int; assert(mas!=0); for(r=0;r<z;r++) подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
25.05.2011, 01:13     Двоичный ввод-вывод
streambuf::sgetc например.

Добавлено через 14 минут
Примерный вариант написанный на коленке.

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
#include <fstream>
#include <iostream>
 
struct integer
{
    char integer_;
    int first;
    int second;
};
 
std::ostream& operator <<(std::ostream& os, const integer& integ)
{
    os << integ.integer_ << ' ' << integ.first << ' ' << integ.second << '\n';
    return os;
}
 
struct doubleger
{
    char doubleger_;
    double first;
    double second;
};
 
std::ostream& operator <<(std::ostream& os, const doubleger& doubleg)
{
    os << doubleg.doubleger_ << ' ' << doubleg.first << ' ' << doubleg.second << '\n';
    return os;
}
 
int main()
{
    std::ofstream ofs("f_name", std::ios::binary);
    if(!ofs)
    {
        return 1;
    }
    integer integ;
    integ.first = 5;
    integ.second = 100;
    integ.integer_ = 'i';
    doubleger doubleg;
    doubleg.first = 5.5;
    doubleg.second = 25.4;
    doubleg.doubleger_ = 'd';
 
    ofs.write((char*)&integ, sizeof(integer));
    ofs.write((char*)&doubleg, sizeof(doubleger));
    ofs.close();
    std::ifstream ifs("f_name", std::ios::binary);
    if(!ifs)
    {
        return 1;
    }
    while(1)
    {
        integer res_integer;
        doubleger res_doubleger;
        std::streambuf* pbuf = ifs.rdbuf();
        int s_int = pbuf->sgetc();
        if(s_int == -1)
            break;
        std::cout << (char)s_int << '\n';
        if(s_int == 'i')
        {
            ifs.read((char*)&res_integer, sizeof(integer));
            std::cout << res_integer << '\n';
        }
        else if(s_int == 'd')
        {
            ifs.read((char*)&res_doubleger, sizeof(doubleger));
            std::cout << res_doubleger << '\n';
        }
    }
}
 
Текущее время: 05:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru