我想知道如何打开任何文件(jpg,txt,zip,cpp,...)作为二进制文件。我希望在通常会解释该文件格式的程序格式化之前看到字节。 这是可能的?我怎么能用c ++做呢? 感谢。
答案 0 :(得分:1)
您可以使用POSIX(C方式但在C ++中工作)函数来执行此操作:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int fd = open("file.bin", O_RDONLY); //Opens the file
if(fd<0){
perror("Error opening the file");
exit(1);
}
char buf[1024];
int i;
ssize_t rd;
for(;;){
rd = read(fd, buf, 1024);
if(rd==-1) //Handle error as we did for open
if(rd==0) break;
for(i = 0; i < rd; i++)
printf("%x ", buf[i]); //This will print the hex value of the byte
printf("\n");
}
close(fd);
答案 1 :(得分:0)
您可以使用旧的C接口(fopen()
等),但C ++方式基于文件流:fstream
,ifstream
,ofstream
,{{ 1}}等等。
要以二进制模式(而非文本模式)打开,您必须使用标记wfstream
。
例如,您可以通过以下方式读取文件(一次一个字符)
std::ios::binary
p.s:抱歉我的英语不好