Проблема с чтением бинарных данных

172
17 апреля 2018, 04:14

Всем привет. Возникла проблема при чтении бинарных данных( *.wav файл ) из stdin. При чтении массива данных размером 65536(запись производится ровно такого размера), корректно читается только 4412 байт, после чтение прерывается так как приходит символ eof. Следовательно отсюда вопрос: каким образом это можно обойти ?

Cборка идёт под ОС WIN 10 x64 компилятор: msvc13

Привожу краткий код чтения и записи:

    std::array<char, SoundVector::Buffer::size> buf
    std::vector<char> input;
    std::memset(buf.data(), 0x00, buf.size());
    std::ifstream is(stdin);
    is.setf(std::ifstream::binary | std::ifstream::in);
    size_t ssize = is.read(buf.data(),buf.size()).gcount();

Запись:

std::ofstream of(stdout);
of.setf(std::ofstream::binary | std::ofstream::out);
std::array<char, SoundVector::Buffer::size> buf;
std::memset(buf.data(), 0x0, buf.size());
std::memcpy(buf.data() + offset, vectorSound.data(), sizeData);
of.write(buf.data(), buf.size());

vectorSound представляет из себя std::vector<short> c данными

P.S. Если записывать буффер, всебайты которого заполнены 0xff, то всё проходит хорошо.

READ ALSO
Не работает обработчик ошибки 404 в node.js

Не работает обработчик ошибки 404 в node.js

Привет!Я учу nodejs и попутно создаю свой API сервер с MongoAtlas

171
Помощь в настройке роутинга на Ангулар2

Помощь в настройке роутинга на Ангулар2

Господа, добрый день! Нужна помощь в настройке роутинга на втором ангуляреВидимо я его неправильно понимаю, потому как он работает несколько...

184
Почему не правильно работает функция?

Почему не правильно работает функция?

Почему к примеру если указать "17:00","19:00" выведет правильно 7200000ms - то есть до oldtime 2ч

146
Почему внезапно заработал hover на айфон?

Почему внезапно заработал hover на айфон?

Насколько мне известно, hover на айфонах просто так не работаетНо тут меня постиг сюрприз

179