我有一个用C ++编写的程序来读取二进制文件。我在C#中编写相同的程序。 但在某些情况下,C#会生成错误的字节。
C ++代码
ifstream s(argv[1], fstream::binary);
unsigned char b;
while(s.good())
{
s >> b;
//...
//Some other code
}
C ++运行良好。
等效C#代码
BinaryReader br = new BinaryReader(new FileStream("filename.bat", FileMode.Open));
byte b;
while(br.BaseStream.Position != br.BaseStream.Length && br.BaseStream.CanRead)
{
b = br.ReadByte();
//...
// some other code
}
C#的某些值与C ++不同 请帮忙谢谢。