모든 파일 (jpg, txt, zip, cpp, ...)을 어떻게 바이너리 파일로 열 수 있는지 궁금합니다. 나는 일반적으로 그 파일 형식을 해석하는 프로그램에 의해 포맷 될 수 있기 전에 바이트를보고 싶다. 가능합니까? C++로 어떻게 할 수 있습니까? 감사합니다. .파일을 이진 파일로 엽니 다.
0
A
답변
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);
0
당신은 이전 C 인터페이스 (fopen()
등)하지만, C++ 방법을 사용하여 파일 스트림을 기반으로 : fstream
, ifstream
, ofstream
, wfstream
등
바이너리 모드 (그리고 텍스트 모드)는 플래그 std::ios::binary
를 사용해야에서 엽니 다.
예를 들어, 당신은 다음과 같은 방법으로
#include <fstream>
#include <iostream>
int main()
{
char ch;
std::ifstream fl("file.log", std::ios::binary);
while (fl.read(&ch, sizeof(ch)))
std::cout << "-- [" << int(ch) << "]" << std::endl;
return 0;
}
PS 파일 (한 번에 하나 개의 문자를) 읽을 수 있습니다 : 내 나쁜 영어
관련 문제
- 1. 브라우저에서 문서 파일을 엽니 다.
- 2. PHP 파일을 엽니 다.
- 3. 버튼을 클릭하면 파일을 엽니 다.
- 4. .scd 파일을 파이썬으로 엽니 다.
- 5. Sublime Text * .handlebars.coffee를 HTML 파일로 엽니 다.
- 6. 주제 ID를 결정하여 CHM 파일로 엽니 다.
- 7. Ruby에서 파일을 자동으로 바이너리로 엽니 다.
- 8. NetBeans로 파일을 드래그하여 엽니 다.
- 9. 파일 설명자가있는 파일을 엽니 다.
- 10. excel 자동으로 파일을 엽니 다
- 11. Excel에서 웹 URL을 Excel 파일로 엽니 다.
- 12. and.doc 데이터베이스 파일을 안드로이드에 엽니 다.
- 13. MATLAB이 느리게 편집 할 파일을 엽니 다.
- 14. 서버 쪽 디렉토리를 열고 파일을 엽니 다.
- 15. excel 파일을 txt로 변환하고 perl로 엽니 다.
- 16. HelperProvider는 항상 인덱스 파일을 엽니 다.
- 17. 가변 변수 파일을 파이썬에서 엽니 다.
- 18. UIButton을 엽니 다. .mobileconfig
- 19. vsix가 Visual Studio를 엽니 다.
- 20. 터미널에서 matlab gui를 엽니 다.
- 21. cscript.exe가 창을 엽니 다.
- 22. 데이터베이스에서 Xlsx를 엽니 다
- 23. 아웃룩이없는 실버 라이트 첨부 파일로 아웃룩을 엽니 다.
- 24. 모든 .xml 파일을 C의 메모장에서 엽니 다.
- 25. 내 애플 리케이션이 PDF 파일을 엽니 다
- 26. 더블 클릭으로 이맥스에 파일을 직접 엽니 다.
- 27. NERDTree가 커서가 마지막에 있던 파일을 엽니 다.
- 28. exe 파일을 프로그래밍 방식으로 엽니 다.
- 29. Bash : 디렉토리의 여러 파일을 연속적으로 엽니 다.
- 30. 이름 바꾸기 파일을 자기 자신으로 엽니 다.
'읽기()'리턴'ssize_t'에 대한 미안, 'int'가 아닙니다. –
맞습니다. – Omar
@Omar - C++에서 표준 ansi-C'fopen()'인터페이스를 사용할 수도 있습니다 – max66