您好,我正在编写一个程序,该程序读取二进制文件的内容并将其打印到屏幕上。
#include <stdio.h>
#include <stdlib.h> // For exit()
int main()
{
FILE *fptr;
char filename[100];
printf("Enter the filename to open \n");
scanf("%s", filename);
// Open file
fptr = fopen(filename, "rb");
if (fptr == NULL)
{
printf("Cannot open file \n");
exit(0);
}
// Read contents from file
fseek(fptr,0L,SEEK_END);
int fsize = ftell(fptr);
fseek(fptr,0L,SEEK_SET);
unsigned char *c = malloc(fsize);
fread(c,fsize,1,fptr);
fclose(fptr);
printf("%s",c);
return 0;
}
但它不能打印任何内容。有人可以向我解释为什么以及如何解决此问题。
您尝试的完全不是您想要实现的。
记住printf()
格式化打印的数据。要使用%s
格式正确打印,二进制数据值必须是ASCII值,但当然不是。
您可能应该尝试printf()
使用%d
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句