我有一个 MIDI 文件,我试图将其读取为十六进制字符串:特别是我想输入一个 MIDI 文件并让十六进制字符串可供使用。我有以下内容:
ostringstream ss;
char * memblock;
unsigned char x;
std::string hexFile;
ifstream file ("row.mid", ios::binary);
ofstream output;
output.open("output.txt");
while(file >> x){
ss << hex << setw(2) << setfill('0') << (int) x;
}
hexFile = ss.str();
cout << hexFile;
当我输出 hexFile 时,我得到以下信息(注意末尾附近的空白):
4d546864000000060001000400f04d54726b0000001300ff58040402180800ff5103 27c000ff2f00
当我在十六进制编辑器中查看 MIDI 时,它的内容如下:
4d546864000000060001000400f04d54726b0000001300ff58040402180800ff5103 0927c000ff2f00
后者绝对是正确的,正如轨道大小所证实的那样(在我手动插入的空白周围,正确的有一个 09 前者缺少)。
是什么导致09
我的代码中丢失了这个?