✅ 1. 표준 입출력의 개념
(1) C 프로그램과 함수

- stdlib.h 헤더 파일에 EXIT_SUCCESS 는 0으로 되어있음. 즉, return 0 임.
- 일반적인 함수에서는 반환값이 존재할 때 return 으로 자료형에 맞는 반환값을 넘겨줘야함.
- 하지만 main() 함수에서는 반환값이 존재할 때 return을 안해줘도 return 0; 문자를 자동으로 넣어주게됨.
- int argc: 터미널로 넘기는 단어의 갯수를 보내줌
- char* argv[]: 이것도 단어 두개를 배열에 하나씩 담아서 보내줌.
(2) 표준 입출력의 개념

- 표준 입력(stdin) 과 표준 출력(stdout) 이 있음.
✅ 2. 형식화 입출력함수
(1) printf() 함수

[ printf() 함수 예시 ]
#include <stdio.h>
int main() {
char c = 'A';
int i = 10, j = 20, k = 30;
printf("간단한 출력 프로그램\n");
printf("'%c'의 ASCII 코드값은 %d\n", c, c);
printf("i=%d, j=%d, k=%d\n", i, j, k);
}
// [ 출력 결과값 ]
// 간단한 출력 프로그램
// 'A'의 ASCII 코드값은 65 -> %c = 문자형, %d = decimal
// i=10, j=20, k=30
- 출력문에 쓰는 해당 %d 와 같은 기호는 출력 양식 변환기호로 불림.
- printf() 함수로 문자나 정수 값 등을 출력하고 싶다면 반드시 변환기호를 써야함.
(2) printf() 함수 - 출력 양식 변환기호 : 정수 출력

(3) printf() 함수 - 출력 양식 변환기호 : 문자 & 문자열 출력

(4) printf() 함수 - 출력 양식 변환기호 : 실수 출력

(5) 출력 양식 변환기호 활용 예시 - 정수
#include <stdio.h>
int main() {
printf("%d\n", 0x10); // 부호 있는 10진수 정수 변환 출력
printf("%x\n", 125); // 부호 없는 소문자 16진수 변환 출력
printf("%X\n", 125); // 부호 없는 대문자 16진수 변환 출력
printf("%o\n", 125); // 부호 없는 8진수 변환 출력
}
// 16
// 7d
// 7D
// 175
(6) 출력 양식 변환기호 활용 예시 - 문자, 문자열
#include <stdio.h>
int main() {
printf("%c\n", 'A'); // 'A' 문자로 출력
printf("%c\n", 0x42); // 0x42(16진수) = 'B' 출력
printf("%s\n", "KNOU"); // "KNOU" 문자열 출력
printf("%s\n", "ab\0cd"); // \0 을 붙히면 뒤의 문자열은 짤림.
}
// A
// B
// KNOU
// ab
(6) 출력 양식 변환기호 활용 예시 - 실수
#include <stdio.h>
int main() {
printf("%f\n", 12.34f); // %f: double 기본형으로 변환이됨. 즉, float double 포괄함.
printf("%f\n", 31.4e-1); // 31.4e-1: 31.4 * 10^-1 = 3.140000
printf("%e\n", 123.45678); // 지수형으로 출력 맨 앞 값빼고는 모두 소수점 표현
printf("%E\n", 12.345678e-6); // 12.345678 * 10^-6 = 1.2345678 * 10^-5
printf("%g\n", 123.45678);
printf("%g\n", 12.345678e-6);
}
// [ 출력 결과 ]
// 12.340000
// 3.140000
// 1.234568e+02
// 1.234568E-05
// 123.457
// 1.23457e-05
- prinf() 의 출력 서식 지정자에서 소수점 이하 자리수를 기본적으로 6자리로 제한하고 있음.
- 만약 3.1415926 이 있다면 마지막 6이 반올림되어 3.141593 으로 출력이 됨.
- %g: 소수점 형식 또는 지수 형식 중 간결한 형식으로 출력
(7) 출력 양식의 편집

- - 기호를 사용하면 좌측 정렬을 해줌. ( 기본적으로는 우측정렬임 )
- + 기호는 해당 수의 부호를 출력해줌.
- ' ' 는 부호 자리를 확보해서 출력해줌. 즉, 양수인 경우 공백이고 음수인 경우 - 부호가 출력됨.
- 0은 수 앞의 빈 자리를 0으로 채워줌. 공간이 남으면 해줌.
- 출력을 위한 최소 자릿수를 정수로 지정해 줄 수 있음.
- . 소수점 이하 자릿수만 출력해줌.
[ 출력 양식의 편집 - 정수형 ]

[ 출력 양식의 편집 - 실수형 ]

- 실수형에 숫자를 넣는 경우 즉, 위와 같이 10을 넣게 되면 자릿수가 10자리로 늘어남
- '.' 과 같이 소수점으로 자릿수를 표기를 안해주면 소수점 뒤의 수에 자동으로 0이 채워짐
- 10.1f = 10자리를 확보 한 뒤 오른쪽에 정렬된 상태로 소수점 한자리를 제외한 나머지를 잘라서 출력
(8) scanf() 함수
[ scanf() 함수의 용도 ]

[ 입력 양식 변환 기호 - 정수 입력 ]


[ 입력 양식 변환 기호 - 실수 ]

[ 입력 양식 변환 기호 - 문자 및 문자열 입력 ]


✅ 3. 기타 입출력함수
(1) 문자 단위의 입출력
[ getchar() 함수 ]
ch = getchar();
printf("%c", ch); // 입력값이 출력됨.
- stdin으로부터 1개의 문자를 입력받을 수 있는 함수이다. 즉, 표준입력으로 부터 하나의 문자 입력
[ putchar() 함수 ]
putchar(문자);
- stdout에 1개의 문자를 출력해주는 함수임.
[ getchar() 및 putchar() 함수의 활용 예 ]
#include <stdio.h>
int main() {
char c;
printf("문자 하나를 입력하세요\n");
c = getchar();
printf("입력한 문자 = ");
putchar(c);
}
- getchar() 함수를 호출하면 문자 하나를 입력 할 수 있게 되고, 입력 시 c 변수에 값이 담기게 된다.
- 이후 putchar() 함수를 호출하면서 c를 넣게 되면 해당 변수값을 출력을 해준다.
(2) 문자열 단위의 입출력
[ gets() 함수 ]
gets(문자열변수);
- stdin 으로부터 행의 끝까지 문자열을 입력 할 수 있다.
- 문자열변수는 입력한 문자를 충분히 저장할 수 있어야 한다. 즉, 문자열 크기를 잘 생각해야함.
[ puts() 함수 ]
puts(문자열);
- stdout 에 문자열을 출력 할 수 있게 도와주는 함수이다.
- 출력 후 자동으로 행이 바뀌는 특징이 있다.
[ gets() 및 puts() 함수의 활용 예 ]
#include <stdio.h>
int main() {
char str[100];
printf("문자열을 입력하세요\n");
gets(str);
printf("입력한 문자열 = ");
puts(str);
puts("KNOU");
}
// 결과값
// 입력: 123456
// 출력: 123456 , KNOU'공부 > ⚙️C' 카테고리의 다른 글
| [C언어] 함수와 기억 클래스(1) (0) | 2025.10.15 |
|---|---|
| [C언어] 선택 제어문과 반복 제어문 (0) | 2025.10.13 |
| [C언어] 입출력 함수와 연산자(2) (0) | 2025.10.03 |
| [C언어] 자료형과 선행처리기 (1) | 2025.08.29 |
| [C언어] C 언어의 개요 (1) | 2025.08.18 |