//
//cin 또는 cout 객체는 스트림상태(stream state)를 나타내는 하나의 데이터 맴버(ios_base 클래스로부터 상속된)를 가지고 있다
//스트림 상태는 eofbit, badbit, failbit라는 세개의 ios_base 원소로 구성된다. 각 원소는 1(설정) 또는 0(해제)이 될 수 있는 단일 비트이다
//cin 연산이 파일의 끝에 도달하면 eofbit를 설정한다.
//cin 이 기대하는 문자를 읽지 못하면 failbit를 설정한다.
//접근할 수 없는 파일을 읽으려 하거나 쓰기 방지된 디스켓에 쓰려고 하다가 입출력 실패가 발생했을 경우에도 failbit가 1로 설정될 수 있다.
//badbit 원소는 알 수 없는 원인으로 스트림이 손상되었을때 설정 된다
//이들 3개의 상태 비트들이 모두 0으로 설정되어 있으면 아무런 문제가 없는 것이다
//
//정수형 값에 문자를 입력 했을시, cin의 failbit(cin의 플래그값)이 1이 되고, goodbit는 0을 리턴한다
//이런 오류상태시에 cin은 그 값은 무시 하되 '\n'만이 입력버퍼에 남게 된다
// 입력버퍼에 홀로 남은 '\n' 덕분에 다음 cin에서도 값을 받지 못한다.
//
//
//
// clear() : 디폴트 절달인자인 0을 사용하여 3개의 상태 비트인 eofbit, badbit, failbit를 모두 해제한다
// void 형이라 딱히 리턴해주는건 없다.
// ignore(255,'\n') : 255개의 문자를 읽을 때까지 또는 개행문자를 만날 때 까지 문자들을 읽고나서 그냥 버린다.
// 이 함수는 호출한 객체를 리턴한다 그래서 아래와 같이 연이어 사용할 수 있게 해준다
// cin. ignore(255,'\n'). ignore(255,'\n')
//
//eofbit : 파일 끝에 도달하면 1로 설정된다
//badbit 스트림이 손상되면 1로 설정된다. 예를 들어 파일 읽기 에러가 발생하면 1로 설정된다
//failbit : 입력연산이 기대하는 문자를 읽지 못하거나 출력 연산이 기대하는 문자를 써 넣지 못하면 1로 설정된다.
'프로그래밍 > 참고' 카테고리의 다른 글
함수 (0) | 2013.02.03 |
---|---|
지역 변수 / 전역 변수 (0) | 2013.01.31 |
메모리 영역 (0) | 2013.01.31 |
셔플 알고리즘 (0) | 2013.01.28 |
난수 출력함수 rand() / srand() (0) | 2013.01.24 |