C++ Chapter 2.6 : 문자형 char type

Date:     Updated:

카테고리:

태그:

인프런에 있는 홍정모 교수님의 홍정모의 따라 하며 배우는 C++ 강의를 듣고 정리한 필기입니다. 😀
🌜 [홍정모의 따라 하며 배우는 C++]강의 들으러 가기!


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

  • 버퍼 비우기


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기