아스키코드
1.
- C 프로그램의 문자는 아스키코드(Ascii Code)를 따름
- 아스키코드는 0~127중의 1바이트로 구성되며 주요 문자를 출력하도록 해줌
0 48
A 65
a 97
2.
- 캐릭터형(char) 자체에 숫자를 넣어서 처리할 수 있음
- 문자 입출력에서 형식 지정자로 %c를 사용
#include<stdio.h>
#include<cstdlib>
int main(void) {
char a = 65;
printf("%c\n", a);
system("pause");
return 0;
}
문자 입출력 함수
- 이러한 문자는 getchar( )를 이용해서 입력을 받는 방식을 이용할 수 있음
- getchar( )는 단 하나의 문자를 입력 받음
#include<stdio.h>
#include<cstdlib>
int main(void) {
char a = getchar();
printf("%c\n", a);
system("pause");
return 0;
}
문자
- 문자열을 처리할 때 버퍼의 개념이 많이 사용됨
- 버퍼(Buffer)란 임시적으로 특정한 데이터를 저장하기 위한 목적으로 사용됨
- C 프로그램은 기본적으로 사용자가 의도하지 않아도 자동으로 버퍼를 이용해 입출력을 처리함
문자와 버퍼
- 입력 버퍼로 인해 흔히 발생하는 오류
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>
int main()
{
int a;
char c;
scanf("%d", &a);
printf("%d\n", a);
scanf("%c", &c);
printf("%c\n", c);
system("pause");
return 0;
}
- 남아 있는 입력 버퍼를 항상 지울 수 있음
EOF(End Of File) - 파일의 끝
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<cstdlib>
int main()
{
int a; char c;
scanf("%d", &a);
printf("%d\n", a);
int temp;
// 한 자씩 받아서 파일의 끝이거나 개행 문자를 만나면 입력을 멈추므로 항상 입력 버퍼를 비워야 함
while ((temp = getchar()) != EOF && temp != '\n') {}
scanf("%c", &c);
printf("%c\n", c);
system("pause");
return 0;
}
- C언어에서는 문자 입출력의 내부에는 버퍼(Buffer)가 존재함