입력된 스트림 멤버 함수

입력된 스트림의 멤버 함수에 대 한 디스크 입력 사용 됩니다.멤버 함수를 포함 합니다.

  • 입력 스트림에 대 한 open 함수

  • Get 함수

  • Getline 함수

  • 읽기 기능

  • Seekg 및 tellg 함수

  • 입력 스트림의 close 함수

입력 스트림에 대 한 open 함수

위한 입력된 파일 스트림을 (ifstream)를 사용 하는 경우, 해당 스트림의 특정 디스크 파일에 연결 해야 합니다.생성자에서이 수행할 수 있습니다 또는 사용할 수 있는 함수.어느 경우가 인수는 동일합니다.

일반적으로 지정 된 ios_base::openmode 플래그는 입력된 스트림과 연결 된 파일을 열 때 (기본 모드입니다 ios::in).목록에는 open_mode 플래그를 참조 하십시오. open 함수.플래그를 비트 OR와 결합 될 수 있습니다 (|) 연산자입니다.

파일을 읽으려면 먼저 사용 하는 실패 존재 여부를 확인 하려면 함수:

istream ifile( "FILENAME" );
if ( ifile.fail() )
// The file does not exist ...

Get 함수

서식이 지정 되지 않은 얻을 멤버 함수의 작동 방식은 다음과 같이 있는 >> 연산자 두 가지 예외와 함께.첫 번째는 얻을 함수를 공백 문자 포함 추출기는 공백 제외 되는 반면 때는 skipws 플래그 (기본값) 설정 됩니다.두 번째는 얻을 함수입니다 고정된 출력 스트림에 발생할 가능성이 (cout, 예를 들어) 플러시해야 합니다.

변형은 가져오기 함수 버퍼 주소가 및 읽을 수 있는 문자의 최대 수를 지정 합니다.다음이 예제에 표시 된 대로 특정 변수를 전송 하는 문자 수를 제한 하는 데 유용 합니다.

// ioo_get_function.cpp
// compile with: /EHsc
// Type up to 24 characters and a terminating character. 
// Any remaining characters can be extracted later.
#include <iostream>
using namespace std;

int main()
{
   char line[25];
   cout << " Type a line terminated by carriage return\n>";
   cin.get( line, 25 );
   cout << line << endl;
}

f5tsy854.collapse_all(ko-kr,VS.110).gif입력

1234

f5tsy854.collapse_all(ko-kr,VS.110).gif샘플 출력

1234

Getline 함수

Getline 멤버 함수는 것은 가져오기 함수입니다.두 함수 모두 종료 문자를 지정 하는 세 번째 인수를 허용 합니다.기본값은 줄 바꿈 문자입니다.두 함수 모두 필요한 종료 문자에 대 한 문자를 예약합니다.그러나 가져오기 종료 문자 스트림에서 떠날 및 getline 종료 문자를 제거 합니다.

다음은 입력 스트림 종결 문자를 지정합니다.

// getline_func.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

int main( )
{
   char line[100];
   cout << " Type a line terminated by 't'" << endl;
   cin.getline( line, 100, 't' );
   cout << line;
}

f5tsy854.collapse_all(ko-kr,VS.110).gif입력

test

읽기 기능

읽기 멤버 함수 읽은 바이트 파일에서 지정 된 메모리 영역에 있습니다.Length 인수는 읽은 바이트 수를 결정 합니다.해당 인수를 포함 하지 않는 경우 실제 파일 끝에 도달 하거나, 텍스트 모드 파일을 포함 하는 경우 경우에 읽기를 중지 EOF 문자를 읽을 합니다.

이 예제 이진 레코드 구조에는 급여 파일을 읽습니다.

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

int main()
{
   struct
   {
      double salary;
      char name[23];
   } employee;

   ifstream is( "payroll" );
   if( is ) {  // ios::operator void*()
      is.read( (char *) &employee, sizeof( employee ) );
      cout << employee.name << ' ' << employee.salary << endl;
   }
   else {
      cout << "ERROR: Cannot open file 'payroll'." << endl;
   }
}

프로그램 데이터 레코드가 서식이 지정 되어 지정 된 대로 구조에 종료 캐리지 리턴 또는 줄 바꿈 문자 가정 합니다.

Seekg 및 tellg 함수

입력된 파일 스트림을 내부 포인터 데이터 다음에 읽을 수 있는 파일 위치에 보관 합니다.이 포인터를 사용 하 여 설정의 seekg 다음과 같이 작동 합니다.

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

int main( )
{
   char ch;

   ifstream tfile( "payroll" );
   if( tfile ) {
      tfile.seekg( 8 );        // Seek 8 bytes in (past salary)
      while ( tfile.good() ) { // EOF or failure stops the reading
         tfile.get( ch );
         if( !ch ) break;      // quit on null
         cout << ch;
      }
   }
   else {
      cout << "ERROR: Cannot open file 'payroll'." << endl;
   }
}

사용할 seekg 레코드 번호 바이트 위치를 파일의 끝을 기준으로 다음을 사용 하 여 고정 길이 레코드 크기 곱하기 레코드 지향 데이터 관리 시스템을 구현 하는 얻을 개체는 레코드를 읽을 수.

tellg 멤버 함수 읽기에 대 한 현재 파일 위치를 반환 합니다.이 값 형식이 streamposa typedef <iostream>에 정의 됩니다.다음 예제는 파일을 읽고 공백 위치를 보여 주는 메시지를 표시 합니다.

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

int main( )
{
   char ch;
   ifstream tfile( "payroll" );
   if( tfile ) {
       while ( tfile.good( ) ) {
          streampos here = tfile.tellg();
          tfile.get( ch );
          if ( ch == ' ' )
             cout << "\nPosition " << here << " is a space";
       }
   }
   else {
      cout << "ERROR: Cannot open file 'payroll'." << endl;
   }
}

입력 스트림의 close 함수

를 닫습니다 멤버 함수 입력된 파일 스트림과 연결 된 파일을 닫고 운영 체제 파일 핸들을 해제 합니다.Ifstream 소멸자가 자동으로 파일을 닫을 수 있지만 수 있습니다의 닫습니다 같은 스트림 개체에 대 한 다른 파일을 열어야 할 경우 작동 합니다.

참고 항목

참조

입력된 스트림