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 중국어 웹사이트의 기타 관련 기사를 참조하세요!