C++/모두의코드

7장

twoweeks-within 2025. 2. 4. 08:55

C++ 입출력 라이브러리

 

ios_base : 기반클래스

while (std::cin >> t) {

// int t 

t 의 타입이 아니면 // int 형이 아니면

fail bit  ON > bool false

>

      std::cin.clear();            // 플래그들을 초기화 하고
      std::cin.ignore(100, '\n');  // 개행문자가 나올 때 까지 무시한다

ios 객체에서 버퍼 처리함 ( 사용자 입력 > 버퍼 > 컴파일)  > 플래그에 맞춰 실행

>>

1. 플래그 초기화

2. 버퍼 무시( 첫번째에는 최대 100개, 두번째로 '\n' 이 나오면 삭제)

    > aaaaaaaa~~~

       aaaaaaaa~~~

       aaa

    > 버퍼 3개 삭제

 

출력 진법 변경

std::cin.setf(ios_base::hex, ios_base::basefield);

1. hex 로 변경

2. basefield : 기존의 진법설정 초기화

 

or 함수 조작자

std::cin >> hex >> t;

 

//

std::ios_base& hex(std::ios_base& str);
>
istream& operator>>(ios_base& (*pf)(ios_base&));

operator>> :  

        pf        : std::ios_base&를 반환하는 함수 포인터  (인자 : ios_base&) // 함수의 주소를 저장하는 포인터 !

                        > pf(*this) 를 호출

>>>

std::cin >> std::hex >> value;

 std::hex ( 여기서 hex는 함수)

  >   operator>> 호출 , pf = hex 

     > std::cin.setf(std::ios::hex, std::ios::basefield); 로 바뀌어 실행

'C++ > 모두의코드' 카테고리의 다른 글

6장  (0) 2025.02.02
5장 // 5.3 뒷부분은 복습때  (0) 2025.02.01
4장 이어서..  (0) 2025.01.31
3장, 4장  (0) 2025.01.30
1장  (0) 2025.01.29