Nagie's DevStory

[CPP] 40. 파일 입출력 (File I/O) [ 2 ] 본문

Programming/C++

[CPP] 40. 파일 입출력 (File I/O) [ 2 ]

Nagie 2023. 10. 23. 22:52
728x90

C++에서 C의 fseek()처럼 사용할 수 있는 함수가 있다.

ifstream과 ofstream에 클래스에 포함된 seekg() 와 seekp()이며

C의 fseek() 처럼 파일 내에서 위치를 이동할 수 있다.

 

#include <iostream>
#include <fstream>

int main() {

    std::ifstream inputFile("example.txt");
    
    if (inputFile.is_open()) {
    
        inputFile.seekg(5); // 파일 내에서 5바이트 위치로 이동
        
        char c;
        
        inputFile >> c;
        
        std::cout << "다섯 번째 바이트: " << c << std::endl;
        
        inputFile.close();
        
    } else {
    
        std::cerr << "파일을 열 수 없습니다." << std::endl;
    }
}

 

std::ios::seekdir 및 std::ios::beg, std::ios::cur, std::ios::end와 같은 상수를 사용해

seekg() 와 seekp() 함수에 위치 기준점을 넘겨줄 수 있으며 사용법은 아래와 같다.

 

inputFile.seekg(10, std::ios::beg);  // 파일의 10바이트 위치로 이동 (시작부터)
inputFile.seekg(20, std::ios::cur);  // 현재 위치에서 20바이트 이동
inputFile.seekg(-5, std::ios::end);  // 파일의 끝에서 5바이트 앞으로 이동

 

728x90
Comments