Search

[C 프로그래밍] 입출력 함수와 연산자 (1)

제목
Tag
작성일

1. 표준 입출력(standard I/O)

C 프로그램이 사용자와 데이터를 주고받는 기본 통로
표준 입력(stdin) → 키보드 입력
표준 출력(stdout) → 콘솔(화면) 출력
구분
입력 함수
출력 함수
형식화 입출력
scanf()
printf()
문자 단위 입출력
getchar()
putchar()
문자열 단위 입출력
gets()
puts()

2. 형식화 출력 함수 — printf()

여러 종류 자료를 지정된 양식으로 콘솔 화면에 출력
형식
printf("출력양식", 수식1, 수식2, ...);
C
복사
출력양식: 출력 형태를 지정하는 문자열
%기호: 자료형에 맞는 변환 기호

주요 변환 기호

자료형
변환기호
설명
정수
%d, %u, %o, %x, %X
10진, 부호 없는 10진, 8진, 16진 출력
문자
%c
한 문자 출력
문자열
%s
널문자 ‘\0’로 끝나는 문자열 출력
실수
%f, %e, %E, %g, %G
실수형(고정/지수/간결형) 출력
변환기호 앞에 h 추가 - short int
l 추가: long
ll 추가: long long
예: %hd, %ld, %llx
정수형 변환기호 예시
형식
의미
예시 코드
출력 결과
%d
10진 정수 출력
printf("%d", 0x10);
16
%x
16진수 (소문자)
printf("%x", 125);
7d
%X
16진수 (대문자)
printf("%X", 125);
7D
%o
8진수 출력
printf("%o", 125);
175
문자 변환 기호 예시
형식
의미
예시 코드
출력 결과
%c
문자 출력
printf("%c", 'A');
A
%c
16진수 문자 코드
printf("%c", 0x42);
B
%s
문자열 출력
printf("%s", "KNOU");
KNOU
%s
널문자 전까지만 출력
printf("%s", "ab\0cd");
ab
실수형 변환 기호 예시
형식
의미
출력 예시
비고
%f
고정 소수점(소수점 6자리 기본)
12.340000
일반 실수 출력
%f
지수표현 입력값도 실수로 출력
3.140000
31.4e-1 = 3.14
%e
지수표기(소문자 e)
1.234568e+02
123.45678 = 1.234568×10²
%E
지수표기(대문자 E)
1.234568E-05
대문자 표기
%g
자동형식 (값 크기에 따라 %f 또는 %e)
123.457
실수형 그대로
%g
작은 값은 자동 지수형 출력
1.23457e-05
자동으로 지수 표기

출력 형식 편집 (플래그 + 자릿수)

- : 좌측 정렬
+ : 부호 출력
' ' : 부호 자리 확보
0 : 빈 자리 ‘0’으로 채움
폭 지정: %5d → 최소 5자리 확보
소수점 지정: %.2f → 소수점 아래 2자리
정수형 예시
실수형 예시

3. 형식화 입력 함수 — scanf()

형식
scanf("입력양식", &변수1, &변수2, ...);
C
복사
%기호: 입력할 자료형 지정
주소 연산자 & 사용 (문자열 제외)

주요 변환 기호

자료형
변환기호
설명
정수
%d, %i, %u, %o, %x
10진, 정수, 부호 없는 10진, 8진(012), 16진(0x41) 입력
문자
%c
문자 1개 입력
문자열
%s
공백 전까지 문자열 입력
실수
%f, %lf
float, double 입력
정수 입력 예시
형식
의미
예시 입력
출력 결과
%d
10진 정수
10
10
%hi
short형 입력
0x20
32
%llx
long long 16진수 입력
30
48
실수 입력 예시
형식
의미
예시 입력
출력 결과
%f
float형 입력
1.23
1.230000
%lf
double형 입력
45.9e-4
4.590000e-03
문자 입력 예시
형식
의미
예시 입력
출력 결과
비고
%c
문자 1개 입력
A
A
공백도 입력됨
%s
문자열 입력 (공백 전까지)
Computer Science
Computer
공백에서 끊김

4. 기타 입출력 함수

함수
구분
설명
getchar()
문자 입력
표준 입력(stdin)에서 문자 1개 읽음
putchar()
문자 출력
문자 1개 출력
gets()
문자열 입력
한 줄 전체 입력 (공백 포함), '\0' 자동 추가
puts()
문자열 출력
문자열 출력 후 자동 줄바꿈