> 백엔드 개발 > C++ > C를 사용하여 텍스트 파일의 특정 줄에 직접 액세스하는 방법은 무엇입니까?

C를 사용하여 텍스트 파일의 특정 줄에 직접 액세스하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-06 07:13:02
원래의
694명이 탐색했습니다.

How to Directly Access a Specific Line in a Text File Using C  ?

C에서 텍스트 파일 탐색: 특정 줄로 이동

fstream으로 텍스트 파일을 열면 파일 내용에 액세스할 수 있습니다. 그러나 파일 내의 특정 줄을 건너뛰거나 액세스해야 하는 경우도 있습니다.

특정 줄로 이동

줄과 같은 특정 줄로 이동하려면 8에서 간단한 방법은 루프 기반 접근 방식을 활용하는 것입니다.

<code class="cpp">#include <fstream>
#include <limits>

std::fstream& GotoLine(std::fstream& file, unsigned int num) {
    file.seekg(std::ios::beg);
    for (int i = 0; i < num - 1; ++i) {
        file.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
    return file;
}</code>
로그인 후 복사

이 함수는 파일 스트림과 줄 번호를 매개 변수로 사용합니다. 파일의 탐색 포인터를 지정된 줄의 시작 부분으로 설정합니다.

코드 이해

  1. file.seekg(std::ios:: beg);: 검색 포인터를 파일의 시작 부분으로 설정합니다.
  2. for (int i = 0; i < num - 1; i){: 원하는 줄 번호까지 각 줄을 반복합니다.
  3. file.ignore(std::numeric_limits::max(), 'n');: 개행 문자를 찾거나 스트림이 끝날 때까지 문자를 소비하고 삭제합니다.
  4. 루프가 완료된 후 탐색 포인터는 지정된 줄의 시작 부분에 배치됩니다.

사용 예

이 접근 방식을 테스트하려면 다음을 고려하세요. 다음 내용이 포함된 텍스트 파일:

1
2
3
4
5
6
7
8
9
10
로그인 후 복사

다음 프로그램은 8번째 줄로 이동하는 방법을 보여줍니다.

<code class="cpp">int main() {
    using namespace std;
    fstream file("bla.txt");

    GotoLine(file, 8);

    string line8;
    file >> line8;

    cout << line8;  // Output: 8
    cin.get();
    return 0;
}</code>
로그인 후 복사

이 방법을 사용하면 8번째 줄로 쉽게 이동할 수 있습니다. 텍스트 파일. 이 접근 방식은 대용량 파일을 처리하거나 전체 파일을 구문 분석하지 않고 특정 정보에 액세스해야 할 때 특히 유용합니다.

위 내용은 C를 사용하여 텍스트 파일의 특정 줄에 직접 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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