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

запись аудиофайла в массив байтов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ массивы http://www.cyberforum.ru/cpp-beginners/thread454093.html
Array17. Дан массив A размера N. Вывести его элементы в следующем порядке: A1, A2, AN, AN–1, A3, A4, AN–2, AN–3, … . Array59. Дан массив A размера N. Сформировать новый массив B того же раз- мера по следующему правилу: элемент BK равен среднему арифметическо- му элементов массива A с номерами от 1 до K. Array87. Дан массив размера N, все элементы которого, кроме...
C++ Как обьявить указатель на двумерный массив? обьясните на примере как обьявить указатель на двумерный массив и потом обращаться к элементам через указатель http://www.cyberforum.ru/cpp-beginners/thread454089.html
C++ Построение дерева Хаффмана
Привет! Есть проблемка. Здесь на форуме нашел темку про код Хаффмана, сейчас уже не буду искать скину отрезок кода. Принцип Хаффмана(построение дерева): в левое поддерево помещается символ с самой большой частотой повторения, в правое остальные символы. На следующем шаге опять в левое поддерево помещается самый часто повторяющийся, в правое все остальное. При этом к коду левого поддерева...
C++ Класс рациональных дробей
Написать пользоват. тип рациональных дробей. Внутреннее представление типа: int a, b; должно быть таким, что число a/b должно представлять собой несократимую дробь. Должно правильно выполняться: 1) создание объектов: Rational x = Rational(1, 3), y(1, 3); Rational n = 4; 2) присваивание w = q; 3) Арифметические операции n.Add(x); (к n прибавляем x)
C++ Куб числа http://www.cyberforum.ru/cpp-beginners/thread454077.html
Доброго времени суток, уважаемые форумчане) Нужно найти число, которое равняется кубу суммы всех своих цифр. Ну например: 512=(5+1+2)^3 Просьба, помочь) Бо в голове не укладывается как это сделать( уже заюзал цикл for все равно, не выходит(
C++ Написать программу Написать программу на языке C++, что получает у пользователя путь и имя каталога и осуществляет переход в заданный контекст. подробнее

Показать сообщение отдельно
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
28.02.2012, 23:26     запись аудиофайла в массив байтов
красиво я бы сделал так:
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
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <iterator>
 
typedef unsigned char BYTE;
 
int main() {
    const char* i_file = "1.mp3", *o_file = "2.mp3";
    std::vector<BYTE> v;
    std::ifstream i_f (i_file, std::ios_base::binary);
    
    if (!i_f) {
        std::cerr << "can't open file" << std::endl;
        return -1;
    }
    
    std::copy (std::istreambuf_iterator<char, std::char_traits<char> >(i_f.rdbuf()), 
               std::istreambuf_iterator<char, std::char_traits<char> >(), 
               std::back_inserter(v));
               
    std::ofstream o_f (o_file, std::ios_base::binary);
    
    if (!o_f) {
        std::cerr << "can't open output file" << std::endl;
        return -1;
    }
    
    std::cout << "get " << v.size() << " bytes" << std::endl;
    std::copy (v.begin(), v.end(), std::ostreambuf_iterator<char, std::char_traits<char> >(o_f.rdbuf()));
}
но правильней ящитаю
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
#include <iostream>
#include <fstream>
#include <vector>
 
int main() {
    const char* i_file = "1.mp3", *o_file = "2.mp3";
    std::vector<char> v;
    std::ifstream i_f (i_file, std::ios_base::binary);
    std::ofstream o_f (o_file, std::ios_base::binary);
    
    if (!i_f || !o_f) {
        std::cerr << "can't open file" << std::endl;
        return -1;
    }
    
    size_t size;
    i_f.seekg (0, std::ios::end);
    size = i_f.tellg();
    i_f.seekg (0, std::ios::beg);
    
    v.resize (size);
    i_f.read (&v.front(), size);
    
    std::cout << "get " << v.size() << " bytes" << std::endl;
    o_f.write (&v.front(), size);
}
 
Текущее время: 04:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru