Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение WAV, разбор файла формата riff 
:(
    Опции темы
falcon39
Дата 11.9.2011, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 21.6.2004

Репутация: нет
Всего: 0



Хочу прочитать в структуру содиржимое wav файла
Код

#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{
 FILE *f;
 unsigned short size = 0;

 struct
  {
   char str01[4];
   unsigned int sizeriff;
   char str02[4];
  } mdl;
 
  f=fopen(argv[1],"r");

  fread(&mdl,sizeof(mdl),1,f);
  cout<<strlen(mdl.str01)<<"\n";
  cout<<mdl.str01<<mdl.sizeriff<<mdl.str02<<"\n";

 system("pause");
return 0;
}


Код

6
RIFF,♣1324WAVE♀
Для продолжения нажмите любую клавишу . . .

6 это длинна str01[4], почему 6 а не 4
читал про нуль-терминатор но так и не понял как его использовать при выводе на экран
--------------------
PM MAIL   Вверх
xvr
Дата 11.9.2011, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(falcon39 @  11.9.2011,  16:59 Найти цитируемый пост)
читал про нуль-терминатор но так и не понял как его использовать при выводе на экран 

Никак, он просто должен быть. А у вас его нет. Поэтому и 6, и RIFF с мусором за ним, и после WAVE тоже мусор  smile 

PM MAIL   Вверх
falcon39
Дата 11.9.2011, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 21.6.2004

Репутация: нет
Всего: 0



как этот мусор убрать
--------------------
PM MAIL   Вверх
xvr
Дата 11.9.2011, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(falcon39 @ 11.9.2011,  19:44)
как этот мусор убрать

Не пытаться печатать эти поля как строки, они не строки, т.к. не терминированны нулем. Печатай как 4 символа
Код

cout<<mdl.str01[0]<<mdl.str01[1]<<mdl.str01[2]<<mdl.str01[3]


PM MAIL   Вверх
bsa
Дата 12.9.2011, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




 ! 
bsa
falcon39, пожалуйста, для своих вопросов создавай отдельные темы

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0856 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.