> 백엔드 개발 > C++ > 본문

getline() 없이 C에서 파일 바이트를 Char 배열로 읽는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-02 22:51:02
원래의
868명이 탐색했습니다.

How to Read File Bytes into a Char Array in C   Without getline()?

C에서 파일 바이트를 Char 배열로 검색하는 방법

getline()을 사용하지 않고 파일 바이트를 char 배열로 읽으려면 다음을 고려하세요. ifstream::read()를 사용합니다. 다음 단계를 따르세요.

  1. 파일 열기:

    <code class="cpp">std::ifstream infile("C:\MyFile.csv");</code>
    로그인 후 복사
  2. 파일 길이 가져오기:

    <code class="cpp">infile.seekg(0, std::ios::end);
    size_t length = infile.tellg();
    infile.seekg(0, std::ios::beg);</code>
    로그인 후 복사
  3. 버퍼 크기 확인:

    <code class="cpp">if (length > sizeof (buffer)) {
     length = sizeof (buffer);
    }</code>
    로그인 후 복사
  4. 파일 읽기:

    <code class="cpp">infile.read(buffer, length);</code>
    로그인 후 복사

추가 참고 사항:

  • 바이너리 모드에서 파일 열기(예: std::ios_base:: 바이너리)는 정확한 바이트 처리를 위해 권장됩니다.
  • seekg() 및 Tellg()는 일반적으로 신뢰할 수 있지만 경우에 따라 항상 정확한 파일 크기를 제공하지 않을 수도 있습니다.
  • 전체 파일 읽기의 경우 한 번의 작업으로 대용량 파일을 처리하면 std::Vector 및 std::istreambuf_iterator를 사용하여 더 많은 유연성을 제공할 수 있습니다.

업데이트된 접근 방식(2019):

읽는 동안 발생할 수 있는 오류를 고려하려면 다음 접근 방식을 고려하세요.

<code class="cpp">size_t chars_read;

if (!(infile.read(buffer, sizeof(buffer)))) {
    if (!infile.eof()) {
        // Handle error during reading
    }
}

chars_read = infile.gcount(); // Get actual number of bytes read</code>
로그인 후 복사

위 내용은 getline() 없이 C에서 파일 바이트를 Char 배열로 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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