> 백엔드 개발 > C++ > C에서 전체 바이너리 파일을 올바르게 읽고 쓰는 방법은 무엇입니까?

C에서 전체 바이너리 파일을 올바르게 읽고 쓰는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-03 14:25:40
원래의
501명이 탐색했습니다.

How to Correctly Read and Write Entire Binary Files in C  ?

바이너리 파일 읽기 및 쓰기

바이너리 파일을 버퍼로 읽어온 후 해당 버퍼를 다른 파일에 쓰려고 하면 적절한 접근 방식을 사용하는 것이 중요합니다. 제공된 코드 조각에서 버퍼가 파일의 첫 번째 줄에서 몇 개의 ASCII 문자만 캡처하고 해당 콘텐츠 전체를 검색하지 못하는 오류가 발생했습니다.

이 문제를 해결하려면 다음 두 가지 권장 접근 방식이 있습니다.

  1. C 사용 접근 방식:

    C의 스트림 반복 기능을 활용하여 다음 코드는 입력 바이너리 파일의 내용을 출력 파일에 효과적으로 복사합니다.

    #include <fstream>
    #include <iterator>
    #include <algorithm>
    
    int main()
    {
        std::ifstream input("C:\Final.gif", std::ios::binary);
        std::ofstream output("C:\myfile.gif", std::ios::binary);
    
        std::copy(
            std::istreambuf_iterator<char>(input),
            std::istreambuf_iterator<char>(),
            std::ostreambuf_iterator<char>(output));
    }
    로그인 후 복사
  2. 수정을 위해 버퍼 사용:

    데이터가 필요한 경우 수정 목적으로 버퍼에 저장하려면 다음 접근 방식을 사용할 수 있습니다.

    #include <fstream>
    #include <iterator>
    #include <vector>
    
    int main()
    {
        std::ifstream input("C:\Final.gif", std::ios::binary);
    
        // Copies all data into buffer
        std::vector<unsigned char> buffer(std::istreambuf_iterator<char>(input), {});
    }
    로그인 후 복사

이러한 기술을 구현하면 코드가 전체 바이너리 파일을 버퍼로 성공적으로 읽거나 직접 읽을 수 있습니다. 출력 파일에 저장하여 정확한 데이터 전송 및 조작을 보장합니다.

위 내용은 C에서 전체 바이너리 파일을 올바르게 읽고 쓰는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿