ifstream fp;
fp.open(path, ios::in | ios::binary); //path is the path of the DICOM file I want to read
fstream output;
output.open("C:\\Users\\Z00\\dump.txt", ios::in | ios::out | ios::trunc | ios::binary);
if (fp.is_open())
{
while (getline(fp, rbuffer))
output << rbuffer;
fp.close();
}
我用上面的代码以二进制模式从DICOM文件读取到txt文件。如何访问文件的二进制数据?
现在,如果我使用记事本或任何其他文档查看器打开文本文件,它将显示与打开DICOM文件时十六进制编辑器显示的内容完全相同的内容。
现在我要处理的文本文档内的数据。所以我尝试将文本文件的内容打印到控制台中,但它会打印完整的乱码。
为什么?
,我应该如何去了解,如果我想访问和操纵二进制数据?
二进制数据不是文本。它可以包含*文本,但本身不包含文本。因此,您不能使用文本函数来处理数据。 –
@Someprogrammerdude,我知道。我的主要问题是为什么我能够通过记事本阅读它,但不能通过C++程序以相同的方式阅读? –
.txt文件专门格式化为ASCII,二进制文件可以是任何格式。 – iyop45