다음을 통해 공유


출력 파일 스트림 멤버 함수

출력 스트림에 멤버 함수는 세 가지 형식이: manipulators를, 포맷 되지 않은 수행 하는 것과 된 쓰기 작업을 하 고는 그렇지 않으면 스트림을 수정할 명시 하 고 없음 해당 하는 manipulator 또는 연산자를 삽입 해야 합니다.순차적, 형식이 지정 된 출력에 대 한 삽입 연산자와 manipulators만 사용할 수 있습니다.임의 액세스 이진 디스크 출력에 대 한 다른 멤버 함수는 여부에 관계 없이 삽입 연산자 사용합니다.

출력 스트림에 대 한 open 함수

출력 파일 스트림을 사용 합니다 (ofstream), 생성자에서 특정 디스크 파일과 해당 스트림을 연결 해야 나는 함수.사용 하는 경우는 함수를 여러 파일을 동일한 스트림 개체를 다시 사용할 수 있습니다.두 경우 모두 파일을 설명 하는 인수는 동일 합니다.

출력 스트림과 연결 된 파일을 열 때 일반적으로 지정 된 open_mode 플래그입니다.열거자 정의 됩니다 이러한 플래그를 조합할 수 있습니다 해당 ios 클래스와 비트 OR 연산자 (|).참조 하십시오 ios_base::openmode 열거자의 목록입니다.

세 가지 일반적인 출력 스트림에 상황 모드 옵션이 포함 됩니다.

  • 파일을 만드는 중입니다.해당 파일이 이미 있는 경우 기존 버전 삭제 됩니다.

    ostream ofile( "FILENAME" );  // Default is ios::out
    ofstream ofile( "FILENAME", ios::out ); // Equivalent to above
    
  • 기존 파일에 레코드를 추가 또는 존재 하지 않는 경우 하나를 작성 합니다.

    ofstream ofile( "FILENAME", ios::app );
    
  • 두 개의 파일을 한 번에 하나씩 같은 스트림 열기.

    ofstream ofile();
    ofile.open( "FILE1", ios::in );
    // Do some output
    ofile.close(); // FILE1 closed
    ofile.open( "FILE2", ios::in );
    // Do some more output
    ofile.close(); // FILE2 closed
    // When ofile goes out of scope it is destroyed.
    

Put 함수

해당 배치 함수를 출력 스트림에 문자를 씁니다.다음 두 명령문은 기본적으로 동일 하지만 두 번째 스트림의 형식 인수에 의해 영향을 받습니다.

cout.put( 'A' ); // Exactly one character written
cout << 'A'; // Format arguments 'width' and 'fill' apply 

쓰기 기능

해당 쓰기 함수를 파일 출력 스트림에 메모리 블록을 씁니다.길이 인수는 쓴 바이트 수를 지정 합니다.출력 파일 스트림을 작성 하 고 이진 값을 작성 하는이 예제는 Date 구조를 합니다.

// write_function.cpp
// compile with: /EHsc
#include <fstream>
using namespace std;

struct Date
{
   int mo, da, yr;
};

int main( )
{
   Date dt = { 6, 10, 92 };
   ofstream tfile( "date.dat" , ios::binary );
   tfile.write( (char *) &dt, sizeof dt );
}

해당 쓰기 함수는 완전 한 클래스 구조 기록 되도록 null 문자를 도달 하면 중지 하지 않습니다.함수가 두 인수를 사용 하는:는 char 포인터와 쓸 문자 수입니다.필요한 캐스트를 참고 char * 전에 구조체 개체의 주소입니다.

Seekp 및 tellp 함수

출력 파일 스트림을 데이터 옆에 쓸 수 있는 위치를 가리키는 내부 포인터를 유지 합니다.seekp 멤버 함수가 this이 포인터를 설정 하 고 따라서 임의 액세스 디스크 파일 출력을 제공 합니다.tellp 멤버 함수는 파일 위치를 반환 합니다.입력된 스트림을 해당 항목을 사용 하 여 예제에 대 한 seekptellp를 참조 하십시오 seekg 및 tellg 함수.

출력 스트림에 대 한 닫기 함수

를 닫습니다 멤버 함수 출력 파일 스트림과 연결 된 파일을 닫습니다.모든 디스크 출력을 완료 하려면 파일을 닫아야 합니다.필요한 경우는 ofstream 소멸자가 자동으로 파일을 닫을 수 있지만 수 있습니다는 닫습니다 같은 스트림 개체에 대 한 다른 파일을 열어야 할 경우 작동 합니다.

출력 스트림 소멸자 생성자는 스트림을 파일 경우에만 자동으로 닫습니다 나는 멤버 함수는 파일을 열 합니다.파일 설명자가 이미 열기 파일 또는 사용에 대 한 생성자를 전달 하는 경우는 첨부 멤버 함수를 파일을 명시적으로 닫아야 합니다.

오류 처리 기능

이러한 멤버 함수를 사용 하 여 스트림에 쓰는 동안 오류를 테스트 합니다.

Function

반환 값

잘못 되었습니다.

반환 true 는 복구할 수 없는 오류가 발생 합니다.

실패

반환 true 파일이 없는 경우 또는 복구할 수 없는 오류 또는 변환 오류와 같은 "예상된 된" 상태에 있는 경우.처리를 호출한 후에 계속 수 있습니다 종종 취소 0 인수를 사용 합니다.

좋은

반환 true 오류 조건이 없습니다 (복구할 수 없는 또는 그렇지 않으면) 있고 파일 끝 플래그가 설정 되지 않은 경우입니다.

eof

반환 true 파일 끝 조건에 있습니다.

clear

내부 오류 상태를 설정 합니다.기본 인수를 호출 하는 경우 모든 오류 비트를 지웁니다.

rdstate

현재 오류 상태를 반환합니다.

The ! 연산자가 오버 로드와 같은 기능을 수행 하는 실패 함수입니다.따라서 식:

if( !cout)...

다음과 동일합니다.

if( cout.fail() )...

Void*() 연산자가 오버 로드의 반대는 ! 연산자. 따라서 식:

if( cout)...

같습니다.

if( !cout.fail() )...

Void*() 연산자에 해당 하는 수 없습니다 좋은 에 대 한 파일의 끝을 테스트 하지 않습니다 때문에.

참고 항목

참조

출력 스트림