출처 : Smile Han
다음은 C 언어에서 화면 출력 함수들을 사용 빈도 기준으로 정리한 표이다.
순위함수용도특징사용 예시
| 1 | printf() | 문자열 + 변수 출력 | 서식 지정 가능, 가장 범용적 | printf("값: %d\n", x); |
| 2 | puts() | 문자열 출력 | 자동 줄바꿈, 간단 출력 | puts("Hello"); |
| 3 | putchar() | 문자 1개 출력 | 반복문과 함께 사용 | putchar('A'); |
| 4 | fprintf() | 스트림(파일/콘솔) 출력 | printf() 확장형 | fprintf(stdout, "값: %d\n", x); |
| 5 | fputs() | 문자열 출력 (스트림 지정) | 줄바꿈 없음 | fputs("Hello", stdout); |
| 6 | write() | 저수준 출력 (시스템 호출) | 리눅스/유닉스 환경에서 사용 | write(1, "Hello\n", 6); |
핵심 정리
- 대부분 상황 → printf()
- 간단 문자열 → puts()
- 문자 단위 → putchar()
- C 프로그램은함수(function)의집합함수란특정한작업을하는독립적인단위모듈
- 함수에입력시키는것을argument, argument를받을변수를매개변수(parameter)
- 함수가돌려주는결과값을반환값(return value)
핵심 개념부터 간단히 정리
-
구분의미언제 쓰는 말예시
parameter (매개변수) 함수가 받을 값의 “자리(변수)” 함수를 만들 때 int add(int a, int b) → a, b argument (인자) 실제로 넣는 값 함수를 부를 때 add(3, 5) → 3, 5
쉽게 이해하기 (비유)
-
- 함수 = 자판기
- parameter = 버튼 (콜라, 사이다 자리)
- argument = 내가 실제로 누른 선택 (콜라, 사이다)
printf()는 **서식 지정자(format specifier)**에 따라 사용법이 나뉘며, 실제로 자주 쓰는 순서대로 정리하면 다음과 같다.
📊 사용 빈도순 + 예시
순위사용 형태설명예시
| 1 | %d | 정수 출력 | printf("%d", 10); |
| 2 | %s | 문자열 출력 | printf("%s", "hello"); |
| 3 | %f | 실수 출력 | printf("%f", 3.14); |
| 4 | \n | 줄바꿈 | printf("hi\n"); |
| 5 | %c | 문자 출력 | printf("%c", 'A'); |
| 6 | 여러 값 출력 | 여러 변수 출력 | printf("%d %d", 1, 2); |
| 7 | 소수점 자리수 | 실수 자리 제한 | printf("%.2f", 3.14159); |
| 8 | %lf | double 출력 | printf("%lf", 3.14); |
| 9 | %x | 16진수 출력 | printf("%x", 255); |
| 10 | %p | 주소 출력 | printf("%p", ptr); |
✔️ 핵심 요약
- %d → 정수 (가장 중요)
- %s → 문자열
- %f → 실수
- \n → 줄바꿈
- 여러 값도 한 번에 출력 가능
다음은 Python의 input() 함수와 C언어의 scanf() 함수를 비교한 표이다.
📊 input() vs scanf() 비교
항목Python input()C scanf()
| 기본 기능 | 사용자 입력 받기 | 사용자 입력 받기 |
| 반환값 | 문자열(String) | 입력값을 변수에 저장 (반환값은 입력 개수) |
| 자료형 처리 | 항상 문자열 → 변환 필요 | 서식 지정자로 바로 타입 지정 |
| 사용 방법 | 간단함 | 상대적으로 복잡함 |
| 형식 지정 | 없음 | %d, %f, %s 등 사용 |
| 여러 값 입력 | 문자열 분리 필요 | 한 번에 여러 변수 입력 가능 |
| 메모리 주소 | 필요 없음 | 변수 앞에 & 필요 |
| 에러 발생 | 비교적 적음 | 잘못 쓰면 오류 발생 가능 |
C 언어에서 입력 함수는 사용 목적에 따라 다르지만, 학습·실무 기준으로 많이 사용하는 순서와 함께 예시를 정리하면 다음과 같다.
📊 사용 빈도순 + 예시
순위함수용도특징예시
| 1 | scanf() | 기본 입력 | 가장 많이 사용, 서식 지정 필요 | scanf("%d", &x); |
| 2 | fgets() | 문자열 입력 | 공백 포함 입력 가능 (안전) | fgets(str, 100, stdin); |
| 3 | getchar() | 문자 1개 입력 | 단일 문자 입력 | ch = getchar(); |
| 4 | gets() ⚠️ | 문자열 입력 | 위험해서 사용 금지 | gets(str); |
| 5 | fscanf() | 파일 입력 | 파일에서 입력 받을 때 | fscanf(fp, "%d", &x); |
&(앤퍼센드, address 연산자)를 쓰는 이유는 변수의 “주소”를 넘겨주기 위해서이다.