Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Three(Two) Tone Shading
- VR
- 벡터
- 개인 바이트
- URP로 변경
- 게임 수학
- Windows Build
- Private Bytes
- 작업 집합
- Cartoon Rendering
- Rim Light
- 가상 바이트
- C언어
- 프로그래밍 기초
- ColorGradingLutPass
- Cell Look
- Cell Shader
- working set
- 메모리 누수
- Specular
- OculusMotionVectorPass
- 3d
- Virtual Byte
- Toon Shader
- ASW(Application SpaceWarp)
- AppSW
- URP
Archives
- Today
- Total
WinCNT
C 언어 - 10. 문자 본문
아스키 코드
- C언어의 문자는 아스키 코드(Ascii Code)를 따른다.
- 아스키 코드는 0~127중의 1바이트로 구성되어 있다.
- 대표적인 아스키 코드의 예시
0 48 A 65 a 97
#pragma region "아스키 코드"
#include <stdio.h>
int main(void)
{
char zero = 48;
char cSmallA = 65;
char cCapitalA = 97;
printf("%c\n", zero);
printf("%c\n", cSmallA);
printf("%c\n", cCapitalA);
system("pause");
return 0;
}
#pragma endregion
문자의 입출력
- getchar() 함수
- 단 하나의 문자를 입력받는 함수
- 버퍼에 데이터가 있을 때는 버퍼 가장 앞의 데이터를 반환함
- 버터에 데이터가 없을 때는 줄 바꿈 문자(\n)가 올 때까지 입력을 받아 버퍼에 저장하고 가장 앞의 데이터를 반환함
이 때 줄 바꿈 문자(\n)도 버퍼에 저장됨
#pragma region "문자의 입출력 함수" #include <stdio.h> int main(void) { char a = getchar(); printf("%c\n", a); system("pause"); return 0; } #pragma endregion
- 단 하나의 문자를 입력받는 함수
- 버퍼(Buffer)
- 임시적으로 특정한 데이터를 저장하기 위한 목적으로 사용함
- C언어는 기본적으로 사용자가 의도하지 않아도 자동으로 버퍼를 이용해 입출력을 처리함
- 입력 버퍼로 인해 흔히 발생하는 오류(숫자와 문자를 동시에 입력받을 경우)
#pragma region "입력 버퍼로 인해 흔히 발생하는 오류" #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int a; char c; scanf("%d", &a); printf("%d\n", a); scanf("%c", &c); //변수 a 출력 후의 줄 바꿈(\n)이 입력으로 처리되어 바로 출력 됨 printf("%c\n", c); system("pause"); return 0; } #pragma endregion
- 남아 있는 입력 버퍼를 제거해야 위와 같은 오류가 발생하지 않는다.
#pragma region "남아 있는 입력 버퍼 제거하기" #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int a; char c; scanf("%d", &a); printf("%d\n", a); //모든 문자는 내부적으로 숫자로 처리하기 때문에 int형을 사용할 수 있다 int temp; //EOF = End Of File, 파일로 입력을 받고 있을 때의 파일의 마지막(아스키 코드로 -1) //줄 바꿈 문자(\n)는 아스키 코드로 10 while ((temp = getchar()) != EOF && temp != '\n') { //버퍼에 남아있는 문자를 getchar()로 앞부터 차례로 한 문자씩 반환한다. //파일의 끝(EOF)이거나 줄 바꿈 문자(\n)면 버퍼의 모든 문자가 반환(버퍼가 비워짐) 반복문을 종료함 } scanf("%c", &c); printf("%c\n", c); system("pause"); return 0; } #pragma endregion
'Study > C' 카테고리의 다른 글
C 언어 - 12. 컴퓨터가 변수를 처리하는 방법 (0) | 2021.09.06 |
---|---|
C 언어 - 11. 문자열 (0) | 2021.09.05 |
C 언어 - 09. 포인터 (0) | 2021.08.03 |
C 언어 - 08. 배열 (0) | 2021.08.03 |
C 언어 - 07. 함수 (0) | 2021.08.03 |