Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 05. 입출력 함수.

Similar presentations


Presentation on theme: "Chapter 05. 입출력 함수."— Presentation transcript:

1 chapter 05. 입출력 함수

2 printf함수 제대로 사용하기 printf함수는 출력할 데이터를 괄호 안에 넣어주는데 이것을 전달인자라고 한다. 전달인자의 수는 출력되는 값에 따라 가변적이지만 첫번째는 반드시 문자열을 사용해야 한다.

3 문자열을 그대로 화면에 출력하는 경우에 사용한다.
▶ 전달인자가 문자열 하나인 경우 문자열을 그대로 화면에 출력하는 경우에 사용한다. printf(“C언어는 1972년 데니스리치가 개발하였습니다.”); C언어는 1972년 데니스리치가 개발하였습니다. 서식문자를 사용하면 다양한 형태로 출력할 수 있다. printf(“C언어는\n1972년\n데니스리치가 개발하였습니다.”); C언어는 1972년 데니스리치가 개발하였습니다.

4 ▶ 다양한 서식문자 서식문자에는 줄바꿈문자 외에도 여러 가지가 있다.
의미 기능 \n newline 출력 위치를 다음 줄의 첫번째 칸으로 옮긴다. \t tab 출력 위치를 다음 탭 위치로 옮긴다. \r carriage return 출력 위치를 현재 줄의 첫번째 칸으로 옮긴다. \b backspace 출력 위치를 한 칸 뒤로 옮긴다. \a alert 경보음을 낸다(삑 소리가 난다). 큰 따옴표나 백슬래시 자체를 출력할 때도 백슬래시를 사용한다.

5 ▶ 문자열 외에 출력할 데이터가 있는 경우 단순한 문자열 외에 출력할 데이터가 있는 경우 출력할 데이터의 개수에 맞게 변환문자열을 사용한다.

6 자료형에 따른 변환문자열의 사용은 다음과 같다.
▶ 변환문자열 정리 자료형에 따른 변환문자열의 사용은 다음과 같다. 구분 변환문자열 출력 형태 대상 자료형 정수형 %d 부호 있는 10진수 signed형의 정수형 변수, 상수 %u 부호 없는 10진수 unsigned형의 정수형 변수, 상수 %o 부호 없는 8진수 signed, unsigned 구분 없이 정수형 데이터를 각 진법에 맞게 출력 %x 부호 없는 16진수 실수형 %lf 부호 있는 소수점 형태 실수형 변수, 상수 %le 부호 있는 지수 형태 문자형 %c 하나의 문자 char형 변수, 문자상수 문자열 %s char형 배열의 이름, 문자열상수

7 ▶ 다양한 변환문자열을 사용한 예제 #include <stdio.h> int main() { char ch='A';
char name[80]="황금박쥐"; int in=10; double db=16.8; printf("정수형 상수의 출력 : %d\n", -10); printf("정수형 변수의 출력 : %d\n", in); printf("정수형 수식의 출력 : %d\n", in/3); printf("실수형 상수를 소수점 형태로 출력 : %lf\n", 2.5); printf("실수형 변수를 지수 형태로 출력 : %le\n", db); printf("실수형 수식을 소수점 형태로 출력 : %lf\n", db/4); printf("문자상수의 출력 : %c\n", 'F'); printf("문자변수의 출력 : %c\n", ch); printf("문자 배열의 출력 : %s\n", name); printf("문자열상수의 출력 : %s\n", "날아라 태극호"); return 0; } 출력 형태 -10 10 3 e+001 F A 황금박쥐 날아라 태극호

8 변환문자열의 정확한 사용법 컴파일러는 변환문자열과 출력할 데이터가 일치하는지 확인하지 않는다. 따라서 자료형에 맞게 정확한 변환문자열을 사용해야 한다.

9 %d와 %u는 출력할 데이터를 각각 다르게 해석한다.
정수값의 각 범위에 맞는 적절한 변환문자열은 다음과 같다.

10 ▶ 정수형과 문자형 변환문자열의 선택(%d, %c)
문자상수와 그에 해당하는 아스키코드값은 크기가 같으므로 어떤 변환문자열을 사용하느냐에 따라 정수값이 출력되거나 문자가 출력된다. 특정 아스키코드값에 해당하는 문자를 확인하는 코드 int a; // char형 변수를 사용해도 가능하다. printf(“아스키코드값을 입력하세요 : ”); scanf(“%d”, &a); printf(“아스키문자는 %c입니다.\n”, a); 아스키코드값을 입력하세요 : 97 (엔터) 아스키문자는 a입니다. %문자를 출력할 때는 %기호를 두 번 사용한다. printf(“당신은 나의 100%% 여인입니다.”);

11 세련된 출력을 지원하는 변환문자열의 옵션 필드옵션은 화면에 출력할 자릿수를 확보하고 오른쪽에 정렬하여 출력한다. 실수값을 출력할 때는 필드옵션에 소수점 이하의 자릿수를 지정할 수 있다. 플래그옵션은 필드옵션과 함께 사용하여 출력 형식에 변화를 준다.

12 ▶ 필드옵션의 여러 가지 사용 예 #include <stdio.h> int main() { printf(" \n"); printf("%10c\n", 'A'); printf("%10d\n", 128); printf("%10lf\n", ); printf("%10le\n", ); printf("%10.3lf\n", ); printf("%10.4s\n", "Love is"); printf("%5lf\n", ); return 0; } 출력 형태 A 128 e+000 3.142 Love

13 ▶ 여러 가지 플래그 옵션 필드옵션을 사용하고 왼쪽에 맞추어 출력할 때는 ‘-’플래그를 사용한다.
‘0’플래그는 확보된 공간에서 남는 왼쪽공간을 모두 0으로 채운다. ‘+’플래그는 부호를 함께 출력한다. ‘#’플래그는 8진수와 16진수를 출력할 때 접두어를 붙여준다. 출력 형태 printf(" \n"); printf(“%-10c%c\n”, ‘A’, ‘B’); printf(“%010d\n”, 1971); printf(“%+d\n”, 128); printf(“%#x\n”, 2005); printf(“%#010x\n”, 0x7d5); A B +128 0x7d5 0x000007d5

14 scanf함수의 첫번째 전달인자는 변환문자열이며 두 번째 전달인자부터 입력 받을 변수를 차례로 나열한다.
scanf(“%d %c\n”, &age, &blood_type); 불필요한 문자!!

15 ▶ scanf함수의 기본적인 사용법 입력에 사용되는 변환문자열은 기본적으로 printf함수와 같다.
구분 변환문자열 입력 형태 입력되는 변수의 자료형 정수형 %d, %u 10진수 char, short, int, long형 변수 %o 8진수 %x 16진수 실수형 %lf, %le 소수점 또는 지수형 double형 변수 문자형 %c 하나의 문자 char형 변수 문자열 %s 하나의 문자열 char 배열 scanf함수는 값을 저장할 변수의 위치를 알아야 하므로 변수명에 ‘&’를 붙여야 한다(단, 배열명에는 붙이지 않는다).

16 ▶ scanf함수는 변환문자열을 정확히 사용해야 한다.
scanf함수는 입력 데이터의 구분을 화이트스페이스(스페이스, 엔터, 탭)으로 한다(%d, %lf, %s변환문자열). scanf(“%d%d”, &a, &b); (엔터) 공백으로 데이터를 구분 %c변환문자열은 화이트스페이스도 하나의 데이터로 입력 받는다. scanf(“%c%c”, &a, &b); x y (엔터) 공백을 데이터로 입력 화이트스페이스를 구분문자로 사용하기 위해서는 %c변환문자열 앞에 공백을 사용한다. scanf(“%c %c”, &a, &b); 공백을 사용하면 b에 y를 입력 받게 된다.


Download ppt "Chapter 05. 입출력 함수."

Similar presentations


Ads by Google