正直なところ、C#でバイナリファイルを読むのは混乱します。 私はバイナリファイルを読み込むためのC++コードを持っている:C++からC#へのバイナリ読み取り関数の変換
FILE *pFile = fopen(filename, "rb");
uint n = 1024;
uint readC = 0;
do {
short* pChunk = new short[n];
readC = fread(pChunk, sizeof (short), n, pFile);
} while (readC > 0);
をし、それが次のデータを読み取ります
-156, -154, -116, -69, -42, -36, -42, -41, -89, -178, -243, -276, -306,...
私はC#1にこのコードを変換しようとしたが、そのようなデータを読み取ることができません。ここでは、コードです:
using (var reader = new BinaryReader(File.Open(filename, FileMode.Open)))
{
sbyte[] buffer = new sbyte[1024];
for (int i = 0; i < 1024; i++)
{
buffer[i] = reader.ReadSByte();
}
}
は、iは、以下のデータを取得:
100, -1, 102, -1, -116, -1, -69, -1, -42, -1, -36
にはどうすれば同様のデータを得ることができますか?
である、あなたは2バイトである' short'、各エンティティを読んでいますこれは1バイトです。 – Jason
@Jason確かにC++では 'short'のサイズは完全には定義されていません; p:しかし、私は同意しません。それを答えとして追加する必要があります。 –
C/C++の経験はありません;/ – Jason