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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tim289
4 / 4 / 2
Регистрация: 15.02.2014
Сообщений: 25
#1

Обработка файлов. Определить, как часто появляется той или иной байт - C++

26.02.2014, 01:15. Просмотров 250. Ответов 2
Метки нет (Все метки)

Ребята облазил весь инет и от безнадежности пишу вам. задача такова открываем файл ios::binari для двоичного ввода и вывода и нужно определить как часто появляется той или иной байт. но проблема в том что я после открытия даже не знаю как его обработать побайтово! через write/read не понимаю как. как вообще распределить побайтово а не побитово?

Добавлено через 2 часа 30 минут
если не понятно условие повторюсь) есть картинка(jpeg ) ее надо считать побайтово/побитово и распределить по частоте всетречающихся байтов!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2014, 01:15     Обработка файлов. Определить, как часто появляется той или иной байт
Посмотрите здесь:

распишите подробно что мы делаем на той или иной строчке! спасибо! - C++
nclude <iostream> #include <string> #include <sstream> #include <cctype> using namespace std; int main() { setlocale(0,...

Как узнать, сколько памяти занимает тот или иной элемент программы? - C++
Товарищи, подскажите, пожалуйста, ответы на следующие вопросы: 1) Есть какие-либо средства определения, сколько памяти жрёт программа в...

При вводе того или иного пароля открывать тот или иной txt-файл - C++
Добрый вечер. Нужно написать программу, которая будет при вводе того или иного пароля открывать тот или иной .txt файл. Например: ...

Как считать адресс из байт кода или очумелые хуки - C++
Здравствуйте. Пишу dll с одним хуком. Есть некая переменная(funcAddress), которая указывает на адресс функции в другой...

Обработка файлов. Определить среднее число знаков препинания, используемых в строке - C++
Дан текстовый файл. Определить среднее число знаков препинания, используемых в строке.

Как определить переполнение разядной сетки из n байт? - C++
Как определить переполнение разядной сетки из n байт?

Как определить, сколько байт занимает массив? - C++
Как определить сколько байт занимает массив? Приведите фрагмент кода, с помощью которого можно это определить.

Реализовать меню, которое позволит запускать тот или иной код - C++
Нужно слепить две простейших программы в одну и сделать простую менюшку выбора, той программы, которую хочу использовать. Есть у кого...

Написать функцию, которая возвращает тот или иной тип переменной по условию - C++
Привет, я тут делаю кое-что. У меня вопрос. А могу ли я сделать функцию, которая возвращает тот или иной тип переменной, в зависимости от...

Дано строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). ​​Определить количество слов, которые заканчиваются одной и той - C++
Дано строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). ​​Определить количество слов, которые заканчиваются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.02.2014, 03:02     Обработка файлов. Определить, как часто появляется той или иной байт #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Как-то так:
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
ifstream fin("4.jpg", ios::binary);
    if (!fin)
        cout << "Error!" << endl;
    else
    {
        unsigned int arr[256] = {0};
        unsigned char ch;
        while (fin.read((char*)&ch, 1))
        {
            if (fin.eof()) break;
            ++(arr[ch]); // увеличиваем значение по индексу, равному значению байта
        }
        fin.close();
        
        for (int i = 0; i < 256; i += 16) // индекс массива равен значению байта, 
                                          // значение по этому индексу равно количеству таких байтов в файле
        {
            for (int j = i; j < i + 16 && j < 256; ++j)
                cout << arr[j] << ' ';
            cout << endl;
        }
        
        int sze = 0;
        for (int i = 0; i < 256; ++i)
            sze += arr[i];
        
        cout << endl << "size = " << sze << endl; // размер файла в байтах
    }
tim289
4 / 4 / 2
Регистрация: 15.02.2014
Сообщений: 25
26.02.2014, 10:58  [ТС]     Обработка файлов. Определить, как часто появляется той или иной байт #3
все классно я даже разобрался но ОН НЕ РАБОТАЕТ!..когда я использую картинку .jpeg тогда выводит только нули.
а при doc формате выводит что байт принадлежащий по таблице аскии букве "я" встречается 1500 раз когда его в док формате всего 40...(

Добавлено через 25 минут
alsav22, на самом деле он даже не открывает jpeg . просто пишет ерор)

Добавлено через 27 минут
спасибо огромное, alsav22! я нашел ошибку у себя)
Yandex
Объявления
26.02.2014, 10:58     Обработка файлов. Определить, как часто появляется той или иной байт
Ответ Создать тему
Опции темы

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