바이너리 파일 읽기 및 쓰기
바이너리 파일을 버퍼로 읽어온 후 해당 버퍼를 다른 파일에 쓰려고 하면 적절한 접근 방식을 사용하는 것이 중요합니다. 제공된 코드 조각에서 버퍼가 파일의 첫 번째 줄에서 몇 개의 ASCII 문자만 캡처하고 해당 콘텐츠 전체를 검색하지 못하는 오류가 발생했습니다.
이 문제를 해결하려면 다음 두 가지 권장 접근 방식이 있습니다.
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)); }
수정을 위해 버퍼 사용:
데이터가 필요한 경우 수정 목적으로 버퍼에 저장하려면 다음 접근 방식을 사용할 수 있습니다.
#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 중국어 웹사이트의 기타 관련 기사를 참조하세요!