>백엔드 개발 >C++ >C fstream을 사용하여 텍스트 파일의 특정 줄로 직접 이동할 수 있습니까?

C fstream을 사용하여 텍스트 파일의 특정 줄로 직접 이동할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-01 12:58:29781검색

Can You Directly Jump to a Specific Line in a Text File Using C   fstream?

C로 텍스트 파일에서 특정 행 찾기

C에서 fstream 라이브러리를 사용하면 텍스트 파일을 읽고 쓰는 것이 편리해집니다. . 그러나 특정 노선으로 직접 이동하는 것은 어려울 수 있습니다. 이 질문은 이 문제에 대한 잠재적인 해결책을 탐구합니다.

문제:

fstream을 사용하여 텍스트 파일을 여는 경우 특정 줄로 바로 이동할 수 있는 방법이 있습니까? , 예를 들어 8번째 줄과 같은가요?

답변:

fstream은 파일의 탐색 포인터를 설정하는 방법을 제공하지만 특정 줄로 직접 점프하는 것을 허용하지 않습니다. . 실용적인 접근 방식은 원하는 줄에 도달할 때까지 모든 줄을 무시하고 파일을 반복하는 것입니다. 이를 달성하는 방법은 다음과 같습니다.

<code class="cpp">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
2
3
4
5
6
7
8
9
10

다음 C 프로그램은 GotoLine 기능을 사용하는 방법을 보여줍니다.

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

    GotoLine(file, 8);

    string line8;
    file >> line8;

    cout << line8;
    cin.get();
    return 0;
}</code>

출력:

8

이 예에서 프로그램은 텍스트 파일의 8번째 줄을 읽고 내용인 "8"을 인쇄합니다.

위 내용은 C fstream을 사용하여 텍스트 파일의 특정 줄로 직접 이동할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.