wavやjpgなど、バイナリデータの読み書きについて質問です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
のるご

wavやjpgなど、バイナリデータの読み書きについて質問です

#1

投稿記事 by のるご » 14年前

バイナリデータの入出力が上手く行かずに困っています。
以下のようなコードを書いたのですが、

ifstream ifs( "files.dat",ios::binary );
BYTE* Data = new BYTE[ FileSize ]; // FileSize = 27
ifs.read( (char*)Data , FileSize );

これをバイナリファイルに出力すると、ファイルのバイト数が38になってしまいます。
末尾に適当なデータが入ってしまい、読み書きの際に整合性を保てません。
wavやjpgなど、バイトデータをメモリに読み込むときも、なぜかデータが大きく確保され、
音声や画像にノイズが乗ってしまいます。
(ファイルサイズはboostを用いて取得、実データと見比べて1バイトの狂いもなく取得できていることを確認しました)

ファイルに書き出す際には、以下のようなコードを書いた所、ファイルサイズ通りに書きだされ、問題なく出力できました

ofstream ofs( "ofiles.dat",ios::binary );
ofs.write( (char*)Data , FileSize );

このような問題への対処法など、知ってる方いらしたら教えて下さい。

アバター
さかまき
記事: 92
登録日時: 14年前

Re: wavやjpgなど、バイナリデータの読み書きについて質問です

#2

投稿記事 by さかまき » 14年前

>これをバイナリファイルに出力すると、ファイルのバイト数が38になってしまいます。
だそうですが

>ファイルに書き出す際には、以下のようなコードを書いた所、ファイルサイズ通りに書きだされ、問題なく出力できました
>ofstream ofs( "ofiles.dat",ios::binary );
>ofs.write( (char*)Data , FileSize );
これはバイナリファイルに出力する事ではないのですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: wavやjpgなど、バイナリデータの読み書きについて質問です

#3

投稿記事 by softya(ソフト屋) » 14年前

問題のあるバイナリ出力の方法を書いてもらわないと答え様がないのでお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る