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

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

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

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

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

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

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

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

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

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

Как в цикле обращаться к полю той или иной таблицы - VB
Ребят пишу СУБД для БД MySQL на VB6 В общем ума не приложу как мне в цикле обращаться к полю той или иной таблицы, поочередно...

Как однозначно выбрать соответсвует число той или иной смене - PostgreSQL
Есть 2 смены. с 8 до 20 и с 20 до 8. Как однозначно выбрать соответсвует число той или иной смене. с дневной сменой вроде ок ...

Как обновить данные той или иной строки ориентируясь по полю - C#
Rows.Add -добавляем строчку в таблицу - как проверить на наличие определенной строчки в таблицы и собственно достать все...

2
alsav22
5426 / 4821 / 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; // размер файла в байтах
    }
1
tim289
4 / 4 / 2
Регистрация: 15.02.2014
Сообщений: 25
26.02.2014, 10:58  [ТС] #3
все классно я даже разобрался но ОН НЕ РАБОТАЕТ!..когда я использую картинку .jpeg тогда выводит только нули.
а при doc формате выводит что байт принадлежащий по таблице аскии букве "я" встречается 1500 раз когда его в док формате всего 40...(

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

Добавлено через 27 минут
спасибо огромное, alsav22! я нашел ошибку у себя)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2014, 10:58
Привет! Вот еще темы с ответами:

Как задать массив точек в mathcad в виде той или иной фигуры на двумерном графике? - MathCAD
Покажите на примере в MAthCAD как делается массив точек с запасом покрывающих нужную фигуру (например квадрат или окружность) c нужным...

От чего зависит корректная работа той или иной операционной системы на том или ином оборудовании? - Администрирование Windows
собственно кругозор расширяется, всё выше и шире углубляюсь в системное администрирование, поэтому возник такой вопрос. Даже не знаю туда...

Обратиться к той или иной колонке таблицы - C++ Builder БД
Вот пишу такие строки не работает. Подскажите как правильно DBGrid2-&gt;Columns-&gt;Visible=true; ...

.NET 4.x Обработать нажатие той или иной кнопки в MessageBox - C#
Вообщем открывается MessageBox с двумя стандартными кнопками &quot;Да&quot; и &quot;Нет&quot;, прописываю, чтобы на &quot;Да&quot; выскакивал MessageBox с текстом &quot;1&quot;, а...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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