Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 파일 처리에서 tellp() 함수 완벽 이해하기


C++ 파일 처리에서 tellp() 함수는 출력 스트림(output stream)과 함께 사용되며, 스트림 내 쓰기 포인터(put pointer)의 현재 위치를 반환하는 함수입니다. 반환값은 정수 계열의 데이터 타입으로, 스트림 포인터가 현재 가리키고 있는 위치를 나타냅니다.

tellp() 메서드는 별도의 매개변수를 받지 않으며, 다음과 같은 형식으로 선언됩니다.

pos_type tellp();

동작 알고리즘

시작.
    fstream 클래스의 객체 newfile을 생성한다.
    open() 메서드를 호출하여 객체 newfile로 "tpoint.txt" 파일을 쓰기 모드로 연다.
    파일 객체 newfile에 데이터를 삽입한다.
    tellp() 메서드를 호출하여 파일 객체 내 포인터의 현재 위치를 출력한다.
    close() 메서드를 호출하여 파일 객체를 닫는다.
끝.

예제 코드

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    fstream newfile;
    newfile.open("tpoint.txt", ios::out); // 파일 객체를 사용하여 쓰기 작업용으로 파일 열기
    newfile << "Tutorials Point"; // 파일에 데이터 삽입
    cout << "파일 내 포인터의 현재 위치: "
         << newfile.tellp() << endl; // 파일 객체 내 포인터의 위치 출력
    newfile.close(); // 파일 객체 닫기
}

실행 결과

파일 내 포인터의 현재 위치: 15

결과 해설

위 예제에서 문자열 "Tutorials Point"는 공백을 포함하여 총 15자이므로, 데이터가 모두 기록된 후 포인터의 위치는 15가 됩니다. 즉, tellp()는 파일에 기록된 바이트 수를 기준으로 현재 쓰기 위치를 알려줍니다.

참고: 관련 함수

입력 스트림에서 읽기 포인터의 위치를 확인하려면 tellg() 함수를 사용하고, 포인터의 위치를 임의로 이동시키려면 seekp()(출력) 또는 seekg()(입력) 함수를 활용할 수 있습니다. 이들 함수를 함께 사용하면 파일 내 특정 위치에 데이터를 읽거나 쓰는 정교한 파일 처리가 가능합니다.