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

бинарные файлы, C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужен метод для автоматического нажатия клавиш. http://www.cyberforum.ru/cpp-beginners/thread422809.html
Добрый день. Суть проблемы такова. Нужно, чтобы методы посылали "нажатия клавиш" в окно имеющее фокус в активном приложении. По типу SendKeys и FindWindow, только уже на c++ . Буду рад любой помощи...
C++ Работа с файлами C++. Здравствуйте, помогите с поставленной задачей. Из заданного текстового файла вывести на экран и записать в новый файл только вопросительные предложения. http://www.cyberforum.ru/cpp-beginners/thread422804.html
C++ C++ составить программу
На экран выведена прямая линия, которая моделирует поведение струны. Построить программу таким образом, чтобы можно было курсором и левой клавишей натянуть струну в вертикальном направлении (вверх...
Заочная олимпиада ФУПМ МФТИ по программированию для школьников C++
Приглашаем всех школьников принять участие в олимпиаде по программированию. Турнир доступен до 15 января. В данный момент в контесте 20 задач, постепенно будут добавляться новые. Олимпиада проводится...
C++ Подсчитать количество нулевых елементов http://www.cyberforum.ru/cpp-beginners/thread422782.html
Подсчитать количество нулевых елементов в массиве, массив заполнить случайными числами
C++ Поиск строки по вектору Добрый день. Помогите разобраться с проблемой пожалуйста: я перегоняю данные из бинарного файла в вектор (так нужно по заданию), затем мне нужно провести поиск строки в векторе. Вот мой куск кода:... подробнее

Показать сообщение отдельно
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
05.01.2012, 16:55
Цитата Сообщение от PrettyNya Посмотреть сообщение
Работа с двоичными файлами.
Создать файл состоящий из n-вещественных чисел. Найти сумму всех положительных чисел данного файла.
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
77
78
79
80
81
82
83
84
#include <iostream>
#include <fstream>
#include <string>
#include <time.h>
#include <cstdlib>
 
int main( )
{
    srand( time( 0 ) );
 
    std::string file_name;
 
    std::cout << "file name >>> ";
    getline( std::cin, file_name );
 
    std::fstream fs( file_name, std::ios::in | std::ios::out | std::ios::trunc | std::ios::binary );
 
    if( !fs.is_open() )
    {
        std::cout << "could not open '" << file_name << "' for rw\n";
        return 1;
    }
 
    size_t count;
 
    std::cout << "numbers count >>> ";
    std::cin >> count;
 
    if( !count )
    {
        std::cout << "must be greater then 0\n";
        return 2;
    }
 
 
    for( size_t i = 0; i < count; i++ )
    {
        double num = ( rand() - double( rand() ) ) * double( rand() % 10 * 0.1 );
        fs.write( (const char *)(&num), sizeof(num) );
 
        if( !fs.good() )
        {
            std::cout << "error while writing values\n";
            return 3;
        }
    }
 
    std::cout << "done writing;\n";
 
    fs.seekg( 0, std::ios_base::beg );
 
    double summ = 0.0;
    size_t i = 0,
           pos_count = 0;
 
    while( !fs.eof() )
    {
        double val;
        fs.read( (char*)(&val), sizeof( val ) );
 
        if( fs.eof() )
           break;
 
        if( !fs.good() )
        {
            std::cout << "error while reading values\n";
            return 4;
        }
 
        if( val > 0 )
        {
           summ += val;
           pos_count++;
        }
 
        i++;
    }
 
    std::cout << "done reading: " << i << " values read; the summ of positive doubles is " << summ << " (" << pos_count << " values)\n";
 
    fs.close();
 
    return 0;
}
Добавлено через 1 минуту

Не по теме:

Gepar, у вас ведь operator<< запишет double в текстовом виде. Какой же он у вас тогда бинарный?

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