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

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

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

Заполнение вектора функцией copy из бинарного файла - C++

10.10.2012, 23:28. Просмотров 568. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Есть бинарный файл с таким содержимым:
10 01 C0 00 00 58 01 01 00 01 00 06 03 00 00 00
00 00 00 00 38 01 00 00 00 00 00 00 00 39 01 00
01 00 00 00 00 00 45 01 00 0A 00 00 00 00 00 49
01 00 00 00 00 00 00 00 4D 04 00 00 00 00 00 00
00 38 01 A4 04 00 08 00 04 00 00 00 1E FF FF A4 
10 00 00 A4 11 01 00 A4 13 00 00 00 00 06 95

Пишу код:
C++
1
2
3
4
5
6
7
8
9
10
11
  ifstream in;
  in.open((OD_LoadCyclo->FileName).c_str(),ios::binary);
  if(!in)
  {
    ShowMessage("File is not open!");
    return;
  }
in.setf(ios::hex,ios::basefield);
vector<unsigned char> vec;
 
copy(istream_iterator<unsigned char>(in), istream_iterator<unsigned char>(), back_inserter(vec));
Вместо 95 байт, считывается 94 и теряется символ "0A" в третьей строке:
01 00 00 00 00 00 45 01 00 0A 00 00 00 00 00 49

Подскажите пожалуйста, что я делаю не так? Или что я могла не дописать?
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2012, 23:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнение вектора функцией copy из бинарного файла (C++):

Заполнение бинарного дерева из файла - C++
Есть задание. Используя классы , создать бинарное дерево. +готово, но пока через структуру-потом поправлю В узлах бинарного дерева...

Заполнение динамического массива структур из бинарного файла - C++
Здравствуйте! Нужна помощь в реализации вот такого алгоритма: предположим, что изначально мы создали динамический массив структур и...

Заполнение бинарного файла структурой и вывод его на экран - C++
мне нужно создать бинарник с заполненной структурой. вроде, заполняю правильно, а с выводом на экран не разобрался, да и как мне потом...

Заполнение вектора из файла - C++
Ребята, подскажите, как считать из файла числа типа double в вектор и вывести на экран? А также потом записать в файл?

Написать аналог процедуры Insert. Процедурой Delete и функцией Copy не пользоваться - C++
Добрый день. Помогите пожалуйста решить 2 задачи 1. Написать аналог процедуры Insert. Процедурой Delete и функцией Copy не пользоваться.

Разобраться с рекурсивной функцией обхода бинарного дерева - C++
Люди, помогите разобраться с рекурсивной функцией обхода бинарного дерева. Бьюсь головой об стену, не могу понять как она работает. ...

2
igorrr37
1712 / 1340 / 162
Регистрация: 21.12.2010
Сообщений: 2,052
Записей в блоге: 10
11.10.2012, 01:16 #2
0x0A есть код перевода строки '\n', надо выставить флаг noskipws
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
#include <iostream>
#include <fstream>
#include <algorithm>
#include <iterator>
#include <vector>
 
typedef unsigned char uchar;
 
int main()
{
    std::fstream fs("in.txt", std::ios::in | std::ios::binary);
    if(fs)
    {
        std::vector<uchar> v;
        std::ios_base::fmtflags ff;
        ff = fs.flags();
        ff &= ~fs.skipws;
        fs.flags(ff);
        std::copy((std::istream_iterator<uchar>(fs)), std::istream_iterator<uchar>(), std::back_inserter(v));
        std::cout << v.size() << std::endl;
        for(auto val : v)
            std::cout << std::hex << int(val) << " ";
        fs.close();
    }
    else std::cerr << "Unable to open file" << std::endl;
    return 0;
}
2
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
11.10.2012, 04:33 #3
можно без алгоритма копирования обойтись.
у контейнеров есть интервальные конструкторы:
C++
1
2
 ifstream inputFile("...", ios::in | ios::binary );
 vector<char> filedata( ( istreambuf_iterator<char>( inputFile ) ),  istreambuf_iterator<char>() );
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 04:33
Привет! Вот еще темы с ответами:

Создание бинарного дерева из бинарного файла - C++
struct Bin { string name; string city; int players; int score; }; void ReadFromBin(Point*&amp; Tree) { Bin q;

Создание бинарного дерево из бинарного файла - C++
struct Bin { string name; string city; int players; int score; }; void ReadFromBin(Point*&amp; Tree) { ...

Распределение элементов вектора внизу бинарного дерева - C++
Здравствуйте У меня такое задание : Дан вектор неопределенной длины (числа). Нужно сделать бинарное дерево, что бы самый нижний...

Заполнение особого бинарного дерева - C++
Собственно класс бинарного дерева я прописал (хоть и криво, не в этом дело). Но метод вставки не подходит к поставленной задачи. А именно:...


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

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

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