CPU(연산) + RAM(데이터) → 컴퓨터
Console과 CLI
Interrupt
컴퓨터 구성

문자 입출력
int main(void)
{
// 선언 + 정의
char ch = 0;
ch = getchar(); // I/O 버퍼에서 한 글자를 가져와서 ch 메모리 공간에 저장해라
putchar(ch); //
putchar('z');
return 0;
}
ch = getchar();
키보드를 누르면 인터럽트 발생
이를 driver라고 함
driver가 os레벨의 커널로 인터럽트를 전달

문자/입출력
문자열/입출력
# include <stdio.h>
int main(void)
{
char szName[32] = { 0 };
printf("이름을 입력해라");
gets(szName); // 매개변수가 포인터, 문자열 배열의 주소를 입력
printf("당신의 이름은");
puts(szName);
puts("입니다."); // 개행을 자동으로 수행
return 0;
}
이름을 입력해라 길동
당신의 이름은 길동
입니다.
gets()함수의 보안 결함
형식 문자와 이스케이프 시퀀스
# include <stdio.h>
int main(void)
{
int x = 10;
putchar('B');
putchar('\\n');
printf("%c\\n", 'A');
printf("x는 %d입니다\\n", x);
printf("%s\\n", "hello world");
return 0;
}
실수 출력
# include <stdio.h>
int main(void)
{
// 단정도
printf("%d\\n",sizeof(123.456f));
// 배정도
printf("%d\\n",sizeof(123.456));
// float을 실수 형식으로 출력
printf("%f\\n",123.456f);
// 2의 자리에서 반올림
printf("%.1f\\n",123.456);
return 0;
}
문자, 정수 입력과 개행문자 제거
메모리의 주소를 알아야하겠지?
‘&’를 활용

*%c
형식문자를 기반 문자열 입력
실습
# include <stdio.h>
int main(void)
{
int age = 0;
char name[100] = { 0 };
// 개행 문자 buffer에서 삭제
printf("나이를 입력하세요:");
scanf("%d%*c", &age);
// get 함수의 이용(파라미터로 주소를 받음)
// 배열은 이름 자체가 주소이다.
// 문자열, 문자, 정수, 실수형의 형식 문자는 자주 사용
printf("이름을 입력하세요:");
gets(name);
printf("당신의 나이는 %d이고 이름은 '%s' 입니다.", age, name);
return 0;
}