我想制作一个 C/C++ 程序来读取文件并将其二进制形式打印为输出。 我能够以普通文本形式打印它。
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
char ch;
if((fp=fopen("C:\\Users\\!diot\\Desktop\\21.txt","rb"))==NULL)
{
printf("\nCannot open file\n");
}
fseek(fp,0,SEEK_SET);
ch=getc(fp);
while(!feof(fp))
{
putchar(ch);
ch=getc(fp);
}
fclose(fp);
return(0);
}
但我想打印它的二进制形式。 所以,请帮忙。
最佳答案
我假设“二进制”是指您希望将内容视为数字数据,而不是 ASCII 文本。改变
putchar(ch);
至
printf("0x%02X ",ch);
{
static int counter=0;
if ((++counter) % 16 == 0) printf("\n");
}
这会将文件显示为十六进制数据。
当然,还有其他方法可以做到这一点。如果您使用的是 Visual Studio,只需使用 .bin
扩展名重命名文件,然后直接使用 Visual Studio 打开它即可直接查看十六进制数据。还有很多免费软件十六进制编辑器。
关于c++ - 以二进制形式打印文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19020120/