"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > getline() 없이 C++에서 파일 바이트를 Char 배열로 읽는 방법은 무엇입니까?

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

2024-11-08에 게시됨
검색:357

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

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

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

  1. 파일 열기:

    std::ifstream infile("C:\\MyFile.csv");
  2. 파일 길이 가져오기:

    infile.seekg(0, std::ios::end);
    size_t length = infile.tellg();
    infile.seekg(0, std::ios::beg);
  3. 버퍼 크기 확인:

    if (length > sizeof (buffer)) {
     length = sizeof (buffer);
    }
  4. 파일 읽기:

    infile.read(buffer, length);

추가 참고 사항:

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

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

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

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
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3