我正在尝试从文件中的特定位置读取 4 个字符。代码很简单,但结果确实令人困惑:
fstream dicomFile;
dicomFile.open(argv[1]);
dicomFile.seekg(128,ios::beg);
char * memblock = new char [4];
dicomFile.read(memblock,4);
cout<<"header is "<<memblock<<endl;
理想情况下,结果应该是“DICM”,但控制台的实际结果是“DICM”加上奇怪的字符,如图所示。更重要的是,每次我运行它,字符都是不同的。我想这可能与 ASCII 和 Unicode 有关,我尝试将项目属性从 Unicode 更改为多字节,然后再改回来,没有区别。
有谁知道这里发生了什么,我该如何解决?非常感谢!