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

Бинарные файлы. Вывести на экран сумму вторых элементов всех массивов. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция modf http://www.cyberforum.ru/cpp-beginners/thread818213.html
Объясните, пожалуйста, почему они не равны? #include <stdio.h> #include <conio.h> #include <iostream> #include <cmath> using namespace std; main()
C++ Ошибка в листинге в книге Читаю книгу Стивена Праты С++. Сперва было норм, но потом переводчик забухал. Нашел кучу ляпов, но здесь ниасилил. хэд #ifndef STRING1_H_ #define STRING1_H_ #include <iostream> class String { ... http://www.cyberforum.ru/cpp-beginners/thread818207.html
C++ Разработка подсистемы обращения к жесткому диску
Собственно моя проблема заключается в том, что я не могу понять, что именно требуется и где найти литературу или статьи на мою проблему (с чего же начать?). Наработки тоже приветствовались бы. ...
Оптимизация функции C++
Здравствуйте, каким образом(кроме switch) можно оптимизировать эту функцию(Нужен самый оптимизированный вариант): void blabla() { if ( a == 1 ) { a = 5; } else if ( a == 0 ) { ...
C++ Поясните результат работы программы http://www.cyberforum.ru/cpp-beginners/thread818151.html
Поясните, пожалуйста, результат следующей программы: #include <iostream> struct A { char a; int b; char c; }; int main() { std::cout << sizeof(A); }
C++ Создать структуру: студент Доброго времени суток! Возникла небольшая проблема, которая поставила меня в тупик. Нужно создать структуру : студент(Фамилия, возраст, номер группы, средний балл). Считать из файла список... подробнее

Показать сообщение отдельно
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2013, 05:36
Самое простое (элементы начинаются с 0):
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
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
 
int main()
{
    ofstream fout("data", ios::binary);
    double arr[4] = {1.0, 2.0, 3.0, 4.0};
    for (int i = 0; i < 5; ++i)
        fout.write((const char*)arr, sizeof(double) * 4);
 
    fout.close();
    
    ifstream fin("data", ios::binary);
    if (!fin) cout << "Error!" << endl;
    else
    {
        double temp[4];
        double sum = 0.0;
        while (true)
        { 
            fin.read((char*)&temp, sizeof(double) * 4);
            if (fin.eof()) break;
            sum += temp[1];
 
        }
        fin.close();
        
        cout << sum << endl;
     }
    
     system("pause");
     return 0;
}

Или так:
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
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
 
int main()
{
    ofstream fout("data", ios::binary);
    double arr[4] = {1.0, 2.0, 3.0, 4.0};
    for (int i = 0; i < 5; ++i)
        fout.write((const char*)arr, sizeof(double) * 4);
 
    fout.close();
    
    ifstream fin("data", ios::binary);
    if (!fin) cout << "Error!" << endl;
    else
    {
        double temp;
        double sum = 0.0;
 
        fin.seekg(sizeof(double) * 1, ios::beg);
        
        while (true)
        { 
            fin.read((char*)&temp, sizeof(double));
            if (fin.eof()) break;
            
            sum += temp;
            
            fin.seekg(sizeof(double) * 3, ios::cur);
        }
        fin.close();
        
        cout << sum << endl;
     }
    
     system("pause");
     return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru