More actions
수업 내용
과제 리뷰를 하며 아스키코드와 버퍼를 설명했습니다. 그러고나서 이론을 가르쳤습니다.
아스키 코드
0과 1로 동작하는 컴퓨터에게 모든 것은
{color:red}숫자
로 통합니다. 문자도 숫자, 소리도 숫자, 그림도 숫자로 취급해서 다루죠.
그런데 우리는 이미 printf와 scanf를 통해서 문자를 입력받고 출력받고 있습니다.
숫자만을 알고 있는 컴퓨터가 어떻게 문자를 다룰 수 있는 걸까요?
답은 간단합니다. 문자 하나마다 숫자를 하나씩 매칭하는거죠.
숫자 97은 문자 a이다, 라고 약속을 하는 겁니다.
그런 약속이 모여서 아스키 코드가 되었죠.
printf("%c", 숫자)에서 '숫자' 자리에 위 테이블에 있는 숫자를 하나씩 넣어보세요.
그 숫자에 해당되는 문자가 출력될 것입니다.
아스키 코드의 숫자는 0부터 127까지입니다. 그래서 우리가 문자를 출력할 때, 0~127을 벗어나는 수를 넣게 되면 문제가 생기게 되지요(물론 저 범위에서 확장된 확장형 아스키 코드가 있긴 하지만, 그건 지금 얘기하지는 않겠습니다).
문자열 입출력
string을 입력받을 때는 앞에 '&'가 붙지 않습니다. 지금은 요정도만 알아두세요.
문자 입력받기는 까다롭다! 버퍼 알아보기
과제 코드의 일부를 가져와봤습니다.
printf("첫 번째 문자 입력하세요 : ");
scanf("%c", &a1);
printf("두 번째 문자 입력하세요 : ");
scanf("%c", &a2);
printf("세 번째 문자 입력하세요 : ");
scanf("%c", &a3);
printf("%d %d %d\n", a1, a2, a3);
그냥 이대로 실행하면 문자 세 개가 정상적으로 입력되지 않습니다. 바로 버퍼 때문인데요, scanf는 입력을 버퍼에 저장합니다.
반복문 for문
==