반응형
3장: 포맷 입력과 출력 (Formatted Input/Output)
3.1 printf 함수
기본 형식
printf("포맷 문자열", 값1, 값2, ...);
- 포맷 문자열: 출력 데이터의 형식을 지정합니다.
- 값(Arguments): 포맷 문자열에 따라 출력될 데이터입니다.
포맷 지정자 (Format Specifiers)
포맷 지정자 데이터 타입 설명
%d | 정수 (int) | 10진수 정수 출력 |
%f | 부동소수점 (float) | 기본 소수점 6자리까지 출력 |
%lf | 부동소수점 (double) | double 타입 실수 출력 |
%c | 문자 (char) | 문자 출력 |
%s | 문자열 (char[]) | 문자열 출력 |
%x | 정수 (int) | 16진수 출력 |
%o | 정수 (int) | 8진수 출력 |
출력 예제
#include <stdio.h>
int main(void) {
int num = 10;
float pi = 3.14159;
char ch = 'A';
char str[] = "Hello, C!";
printf("정수: %d\n", num); // %d는 정수 출력
printf("실수: %.2f\n", pi); // %.2f는 소수점 둘째 자리까지 출력
printf("문자: %c\n", ch); // %c는 문자 출력
printf("문자열: %s\n", str); // %s는 문자열 출력
return 0;
}
출력 결과:
정수: 10
실수: 3.14
문자: A
문자열: Hello, C!
3.2 scanf 함수
기본 형식
scanf("포맷 문자열", &변수1, &변수2, ...);
- 포맷 문자열: 입력 데이터의 형식을 지정합니다.
- &: 입력받은 데이터를 저장할 변수의 주소를 나타냅니다.
포맷 지정자 (Format Specifiers)
포맷 지정자 데이터 타입 설명
%d | 정수 (int) | 10진수 정수 입력 |
%f | 부동소수점 (float) | 실수 입력 |
%lf | 부동소수점 (double) | double 타입 실수 입력 |
%c | 문자 (char) | 문자 입력 |
%s | 문자열 (char[]) | 문자열 입력 (공백 제외) |
입력 예제
#include <stdio.h>
int main(void) {
int num;
float value;
char ch;
printf("정수를 입력하세요: ");
scanf("%d", &num);
printf("실수를 입력하세요: ");
scanf("%f", &value);
printf("문자를 입력하세요: ");
scanf(" %c", &ch); // 공백 처리를 위해 앞에 공백 추가
printf("입력된 값 - 정수: %d, 실수: %.2f, 문자: %c\n", num, value, ch);
return 0;
}
출력 결과:
정수를 입력하세요: 10
실수를 입력하세요: 3.14
문자를 입력하세요: A
입력된 값 - 정수: 10, 실수: 3.14, 문자: A
3.3 printf와 scanf에서 자주 사용하는 기능
숫자 출력 형식 조정
- 소수점 자릿수 지정:
- printf("%.2f", 3.14159); // 3.14
- 폭 지정 및 정렬:
- printf("%10d", 123); // 오른쪽 정렬, 폭 10 printf("%-10d", 123); // 왼쪽 정렬, 폭 10
문자열 입력 처리
scanf는 공백을 기준으로 문자열 입력을 처리합니다. 전체 문장을 입력받으려면 fgets를 사용합니다.
#include <stdio.h>
int main(void) {
char name[50];
printf("이름을 입력하세요: ");
scanf("%49s", name); // 공백 포함 불가
printf("이름: %s\n", name);
return 0;
}
3.4 심화 예제
1. 단위 변환 계산기
#include <stdio.h>
int main(void) {
float celsius, fahrenheit;
printf("섭씨 온도를 입력하세요: ");
scanf("%f", &celsius);
fahrenheit = (celsius * 9 / 5) + 32;
printf("화씨 온도: %.2f\n", fahrenheit);
return 0;
}
2. 두 수의 합
#include <stdio.h>
int main(void) {
int num1, num2;
printf("첫 번째 정수를 입력하세요: ");
scanf("%d", &num1);
printf("두 번째 정수를 입력하세요: ");
scanf("%d", &num2);
printf("두 수의 합: %d\n", num1 + num2);
return 0;
}
반응형
'Computer Science > C 언어' 카테고리의 다른 글
[C#5] 조건문 (Selection Statements) (1) | 2024.12.03 |
---|---|
[C#4] 표현식 (Expressions) (0) | 2024.12.02 |
[C#2] C의 기초 (C Fundamentals) (1) | 2024.11.30 |
[C#1] C 언어의 기초: 역사와 특징 (1) | 2024.11.29 |
[C 0] C Programming: A Modern Approach (2nd Edition) 목차 (1) | 2024.11.27 |