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

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

Войти
Регистрация
Восстановить пароль
 
StronglovE
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 4
#1

Бинарный файл - C++

15.04.2014, 10:32. Просмотров 477. Ответов 8
Метки нет (Все метки)

Есть бинарный файл, заполненный числами в 16-ричной форме а также разного рода символами. Необходимо проверить есть ли сочетание FFFF, если есть подсчитать количество и вывести на экран.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 10:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Бинарный файл (C++):

Записать в бинарный файл массив объектов Student (бинарный файловый ввод/вывод) - C++
Здравствуйте. Стоит задача записать в бинарный файл массив объектов student: class student { string firstname,lastname, group; ...

Не получается прочесть правильно текстовый файл в структуру а затем в бинарный файл - C++
Нужно просто прочесть файл в структуру данных а потом оттуда записать в бинарный файл Вот как выглядит текстовый файл: 11122 Mary...

Данные записать в файл F1.txt, затем прочитать оттуда, обрабатывались и записывались в бинарный файл F2.bin с проверкой - C++
Никак не получается отладить в BC++ 3.1. Как сделать в классах так, чтобы введённые данные записывались в файл F1.txt, затем читались...

Создать бинарный файл и текстовый файл - C++
Вот, к примеру, я написал программу для введения 5 чисел в текстовый файл, а как будет выглядеть программа бинарного файла? ...

Бинарный файл - C++
Удалить из бинарного файла, в котором записаны целые числа все четные элементы.

Бинарный файл - C++
Привет всем:) Помогите пожалуйста разобраться! Задача: Дан символьный файл. Определить входит ли в него сочетание abcdefgh. Найти число...

8
zelen
378 / 293 / 17
Регистрация: 10.07.2010
Сообщений: 779
Завершенные тесты: 2
15.04.2014, 11:06 #2
FilleStrem и считывать байты, хоть блоками по 2 байта, хоть блоками кратными 2-ум) и если 2 байта равны 255 то это FFFF
0
StronglovE
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 4
15.04.2014, 12:13  [ТС] #3
FileStream вроде для с#. Хотелось бы для C++ и для консольного приложения.
0
zelen
378 / 293 / 17
Регистрация: 10.07.2010
Сообщений: 779
Завершенные тесты: 2
15.04.2014, 12:32 #4
опс извиняюсь)
0
newbie666
Заблокирован
15.04.2014, 12:44 #5
ну открывай ты свой файл и ищи свои сочетания байтов при помощи std::fstreаm, в чём конкретно твоя проблема? в лени что ли?

Добавлено через 1 минуту
Цитата Сообщение от StronglovE Посмотреть сообщение
Есть бинарный файл, заполненный числами в 16-ричной форме
в бинарном файле вся информация в двоичном виде
0
StronglovE
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 4
15.04.2014, 12:58  [ТС] #6
Мне не понятна сама реализация побайтного чтения и сравнения с искомым числом. Начал разбераться с С++ недавно, потму прошу не судить строго.

Добавлено через 38 секунд
Да.
0
OstapBender
583 / 522 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
15.04.2014, 13:31 #7
StronglovE, я думаю проще всего прочитать файл целиком в буфер, дальше в цикле проверять каждую пару байт с искомым числом.

проверять можно, например, с помощью memcmp
0
newbie666
Заблокирован
15.04.2014, 13:42 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от StronglovE Посмотреть сообщение
Да.
что да? Лентяй?
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 <tchar.h>
#include <iostream>
#include <fstream>
#include <vector>
 
int _tmain(int argc, _TCHAR* argv[])
{   
    unsigned int matchesFound = 0;
    std::vector<char> oneItem;
    std::fstream fs(L"data.bin", std::ios::in | std::ios::binary);
    while (true)
    {
        char tmp;
        fs.read(&tmp, 1);
        if(fs.eof())
            break;
        if(tmp == (char)0xff)
        {
            oneItem.push_back(tmp);
            if(oneItem.size() == 2)
            {
                matchesFound++;
                oneItem.clear();
            }
        }
        else
            oneItem.clear();
    }
    fs.close();
 
    std::cout << "Number of '0xFFFF' matches found: " << matchesFound << std::endl;
    system("pause");
 
    return 0;
}
1
StronglovE
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 4
15.04.2014, 14:00  [ТС] #9
Спасибо, разобрался.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 14:00
Привет! Вот еще темы с ответами:

Бинарный файл - C++
В файл, помимо нужного, записывается, почему-то, буква &quot;М&quot;, что не так? void add(fstream&amp; stream, SportBeg&amp; sportBeg, int n) { ...

Бинарный файл - C++
Ошибка strcpy(rb.dr, DateTimePicker1-&gt;Date.c_str()); Не могу понять, что за ошибка)

С++ Бинарный файл - C++
Нужно написать программу на visual studio 10 c++ которая записивала числа в файл, введеные числа. по несколько цифр в строчку. всего должно...

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


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
15.04.2014, 14:00
Ответ Создать тему
Опции темы

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