programing

파일을 바이트 배열로 읽기

topblog 2023. 10. 20. 13:24
반응형

파일을 바이트 배열로 읽기

허프만 알고리즘을 코딩하는 과제가 있습니다.머릿속에 문제가 다 정리되어 있는데 파일 처리에 문제가 좀 있습니다.

문제는 알고리즘이 모든 종류의 파일을 압축하도록 되어 있다는 것입니다.

내 해결책: 파일을 바이트 배열로 읽은 다음,int array[256]={0}각 바이트에 대해, 그것을 얻으라.int n해당 값 및 증가 값array[n]. 제가 분명히 말하지 않았다면, 저에게 알려주세요.

그래서 많은 조사를 해봤지만, 어떤 종류의 파일에서도 바이트를 얻는 방법과 그것을 어떻게 처리해야 하는지 이해가 되지 않습니다.

FILE *fileptr;
char *buffer;
long filelen;

fileptr = fopen("myfile.txt", "rb");  // Open the file in binary mode
fseek(fileptr, 0, SEEK_END);          // Jump to the end of the file
filelen = ftell(fileptr);             // Get the current byte offset in the file
rewind(fileptr);                      // Jump back to the beginning of the file

buffer = (char *)malloc(filelen * sizeof(char)); // Enough memory for the file
fread(buffer, filelen, 1, fileptr); // Read in the entire file
fclose(fileptr); // Close the file

이제 파일 내용을 포함하는 바이트 배열이 있습니다.

바이너리 파일 IO를 시도해 보는 것은 어떨까요?

  FILE *f=fopen("example.bin","rb");
  char c;
  //loop for each byte to the end
  {
    size_t fread(&c, (size_t)1, (size_t) 1, f);
    array[c]++;
  }

아니면 줄을 따라서!!

언급URL : https://stackoverflow.com/questions/22059189/read-a-file-as-byte-array

반응형