본문 바로가기
C │ C++ │ C#/C++

C++ Chapter 2.6 : 문자형 char type

by Pokaa 2023. 8. 15.
728x90
728x90
SMALL

Chapter2. 변수와 기본 자료형
문자형 char type

 

 

아스키 코드

 

  • 1개의 여러 문자들을 정수에 대응시켜 놓은 것
  • 아스키 코드에 따라  char  문자들은 내부적으로  정수 에 대응되어 있다.
    ο 65를 char로 출력하면 ‘A’출력
    ο (()char())65 형변환하여 출력하면 ‘A’출력
        ■ cf) C++ 스타일로는 char$($65$)$
char c1(65);

cin >> c1;
cout << c1 << " " << static_cast<int>(c1) << endl;

cin >> c1;
cout << c1 << " " << static_cast<int>(c1) << endl;
  • cin » c1;
    ο c1 변수는 1개의 문자를 받는 char 타입
        ■ ‘abc’를 콘솔 입력해본다.
        ■ ‘a’만 c1에 저장되고
            ■ 1개의 문자만 받으므로
        ■ ‘b’, ‘c’는 버퍼에 남아있게 된다.
  • cout « c1 « ” “ « static_cast$($c1$)$ << endl;
    ο a 출력 , int 로 변환되 97 출력
  • cin » c1;
    ο 콘솔 입력이 아닌 입력버퍼에 남아있던 ‘b’가 c1에 저장된다.
    ο ‘c’만 버퍼에 남아있는 상태
  • cout « c1 « ” “ « static_cast$($c1$)$ << endl;
    ο b 출력, int로 변환되 98 출력

 

개행 문자 \n 와 endl 의 차이

 

\n

  • char타입의 ‘문자’이다.
  • 오로지 줄바꿈만 해준다.
    ο \n 뒤에 다른 문자들이 있어도 \n을 만나면 줄바꿈이 되며 뒤에 문자들은 버퍼에 남는다.


endl

  • 줄바꿈 + 버퍼비우기
  • 줄바꿈과 동시에 버퍼에 있는 모든 내용들도 출력한다. flush 기능도 하는 것.
  • 버퍼에 있는 것들을 무조건 다 출력한 후 줄바꿈
    ο 따라서  \n  보다 느리다.
        ■ 버퍼 비우는 과정도 해야하니까.
            ■ 여러줄 연속으로 출력할땐  \n 이 나을 수도 있다. 상황에 따라 다르지만 !


flush

  • 버퍼 비우기
728x90
300x250
LIST