Presentation is loading. Please wait.

Presentation is loading. Please wait.

2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수 khlee@dsc.ac.kr.

Similar presentations


Presentation on theme: "2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수 khlee@dsc.ac.kr."— Presentation transcript:

1 2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수

2 수행준거 1. C프로그램에서 표준 입력과 출력에 대해 설명할 수 있다.
3. 표준 입출력함수를 이용하여 간단한 자기소개 프로그램을 작성할 수 있다 3. 표준 입출력함수를 이용하여 간단한 사칙계산 프로그램을 작성할 수 있다.

3 이 장에서 설명은? 2.1 한 문자(character)의 입력과 출력 2.2 한 행 문자열(string)의 입력과 출력
2.3 양식(format)에 의한 입력과 출력

4 2.0 (잠깐!!!) C 프로그램의 기본 구성은? #include <stdio.h> void comjung();
void main() { int nai; scanf(“%d”, &nai); printf(“나이는 %d 살이다.\n”, nai); comjung(); } void comjung() printf(“나는 홍길동이다.\n”, nai); 사용자정의 함수 comjung()의 원형선언부이다. 메인 함수이며, 메인 함수명은 main()로 지정되어야만 한다. 사용자정의 함수이며, 함수명을 comjung() 으로 지정하고 있다. 라이브러리 함수 scanf(),printf()

5 2.0 (잠깐!!!) C 프로그램에서 각 종 함수에는? 메인 함수(main function)
 사용자정의 함수(user defined function) ☞ 프로그램 작성자가 필요에 의해 임의로 작성한 함수이다. ☞ 사용자정의 함수의 원형(prototype)을 선언해 주어야 하는 함수이다. ☞ 필요에 따라 하나의 프로그램 안에 0개 이상 정의하여 사용할 수 있다.  라이브러리 함수(library function) ☞ C 언어 컴파일러 자체에서 지원해 주는 함수이다. ☞ 이 함수는 함수의 사용법에 따라 정의해야만 사용이 가능하다. ☞ 이 함수를 프로그램에 사용할 때에는 반드시 함수의 본체가 프로그램 되어 있는 해더파일(예, stdio.h )을 포함시켜 주어야 한다.

6 2.0 기본적인 표준 입출력 함수 6가지 getchar() putchar() gets() puts() scanf()
2.0 기본적인 표준 입출력 함수 6가지 [표2-1] C 언어에서 제공하는 표준 입출력 함수 6가지 입출력 함수 기 능 사용장치 관련 해더파일 getchar() putchar() gets() puts() scanf() printf() 영문자 한 개씩 입력 영문자 한 개씩 출력 문자열을 한 줄씩 입력 문자열을 한 줄씩 출력 지정한 형식으로 변환하여 입력 지정한 형식으로 변환하여 출력 키보드 화면 stdio.h

7 2.0 실습해 보자 #include <stdio.h> void main() {
2.0 실습해 보자 표준 입출력함수에 속하는 printf()을 이용하였기 때문에 stdio.h 라는 해더파일을 포함시킨 문장이다. ◀2-1.C▶ #include <stdio.h> void main() { printf("나는 홍길동이다. \n"); printf("나는 스무살이다. \n"); } 메인 함수를 정의한 것이다. 실행결과                         나는 홍길동이다. 나는 스무살이다. 괄호() 속에서 지정한 형식으로 출력하는 기능을 가진 표준 출력함수이다.

8 2.0 퀴즈 퀴즈 풀어보기 교제 27 쪽 ( 1번~4번 )

9 2.1 한 문자의 입력과 출력 (1) getchar() (2) putchar() get character 의 약자
2.1 한 문자의 입력과 출력 (1) getchar() (2) putchar() get character 의 약자 put character 의 약자

10 2.1 한 문자의 입력과 출력 (1) getchar() (2) putchar()
2.1 한 문자의 입력과 출력 (1) getchar() 키보드로부터 한 개의 영문자를 입력시킬 때 사용하는 함수이다. [사용형식] 문자형변수 = getchar(); [사용 예] a = getchar(); (2) putchar() 화면에 하나의 영문자를 출력(표시)시킬 때 사용하는 함수이다. [사용형식] putchar( 문자형변수 ); [사용 예] putchar( a );

11 2.1 한 문자의 입력과 출력 #include <stdio.h> void main() { char ch = 'A';
2.1 한 문자의 입력과 출력 ◀2-2.C▶ putchar() 함수의 사용 예1 #include <stdio.h> void main() { char ch = 'A'; putchar( ch ); } 프로그램에 putchar() 함수를 사용했기 때문에 stdio.h 해더 파일을 포함시킨 문장이다. 문자1개를 기억할 수 있는 문자형 변수를 ch 라는 이름으로 선언하고, 그 ch 변수에 문자 A를 기억시키 라는 문장이다. 실행결과 A 변수 ch에 기억된 값을 한 개의 문자형태로 화면에 출력하라는 문장이다. (보충실습) 이 문장을 char ch=“동”; 이라고 수정하여 실행시켜 보라.

12 2.1 한 문자의 입력과 출력 #include <stdio.h> void main() { putchar('A');
2.1 한 문자의 입력과 출력 ◀2-3.C▶ putchar() 함수의 사용 예2 #include <stdio.h> void main() { putchar('A'); } 괄호 속에 지정된 문자‘A’를 그대로 화면에 출력하라는 문장이다. 실행결과                   A         (보충실습 1) 이 문장을 putchar(“동”); 이라고 수정하여 실행시켜 보라. (보충실습 2) 이 문장을 putchar( 65 ); 이라고 수정하여 실행시켜 보라.

13 2.1 한 문자의 입력과 출력 #include <stdio.h> void main() { char ch;
2.1 한 문자의 입력과 출력 ◀2-4.C▶ getchar(), putchar() 함수를 사용한 경우 #include <stdio.h> void main() { char ch; ch = getchar(); putchar( ch ); } 키보드에서 입력되는 한 개의 문자를 입력받아 문자형 변수 ch에 기억하라는 문장이다. Ch 변수에 기억된 값을 한 개의 문자로 화면에 출력하라는 문장이다. 실행결과 A <Enter> A (보충실습) 다시 한번 실행시켜 동서울 <enter> 이라고 입력시켜 보라.

14 2.1 한 문자의 입력과 출력

15 2.2 한 행(줄) 문자열의 입력과 출력 (1) gets() (2) puts() get string 의 약자
2.2 한 행(줄) 문자열의 입력과 출력 (1) gets() (2) puts() get string 의 약자 put string 의 약자

16 2.2 한 행(줄) 문자열의 입력과 출력 (1) gets() (2) puts()
2.2 한 행(줄) 문자열의 입력과 출력 (1) gets() 키보드로부터 한 행의 문자열을 입력 받는 기능을 수행하는 함수이다. [사용형식] gets( 문자열변수 ); [사용 예] gets( buffer ); (2) puts() 모니터 화면에 한 행의 문자열을 출력하는 기능을 수행하는 함수이다. [사용형식] puts( 문자열변수 ); [사용 예] puts( buffer );

17 2.2 한 행(줄) 문자열의 입력과 출력 #include <stdio.h> void main() {
2.2 한 행(줄) 문자열의 입력과 출력 최대 256개의 문자로 구성된 문자열을 기억할 수 있는 buffer 변수를 선언하고, “COMPUTER”라는 문자열을 기억시키라는 문장이다. ◀2-5.C▶ puts() 함수를 사용한 예1 #include <stdio.h> void main() { char buffer[256] = "COMPUTER"; puts( buffer ); } 실행결과 COMPUTER Buffer 변수에 기억된 값을 문자열로 화면에 출력하라는 문장이다. (보충실습) 이 문장에서 “COMPUTER”를 “나는 홍길동이다” 라고 수정하여 실행시켜 보라.

18 2.2 한 행(줄) 문자열의 입력과 출력 #include <stdio.h> void main() {
2.2 한 행(줄) 문자열의 입력과 출력 ◀2-6.C▶ puts() 함수를 사용한 예2 #include <stdio.h> void main() { puts("COMPUTER"); } 괄호 속에 정의된 문자열 데이터 COMPUTER을 문자열 형태로 화면에 출력하라는 문장이다. 실행결과 COMPUTER (보충실습) 이 문장에서 “COMPUTER”를 “나는 홍길동이다” 라고 수정하여 실행시켜 보라.

19 2.2 한 행(줄) 문자열의 입력과 출력 #include <stdio.h> void main() {
2.2 한 행(줄) 문자열의 입력과 출력 ◀2-7.C▶ gets(), puts() 함수를 사용한 예 최대 256개의 문자로 구성된 문자열을 기억할 수 있는 buffer 변수를 선언하라는 문장이다. #include <stdio.h> void main() { char buffer[256]; gets( buffer ); puts( buffer ); } 키보드에서 입력되는 데이터를 문자열로 입력 받아 buffer 변수에 기억시키라는 문장이다. 실행결과 hong gil dong <Enter> hong gil dong buffer 변수에 기억된 값(문자열)을 문자열로 화면에 출력하라는 문장이다. (보충실습) 다시 한번 실행시켜 한글로 나는 홍길동이다. <enter> 라고 입력시켜 보라.

20 2.2 한 행(줄) 문자열의 입력과 출력 #include <stdio.h> void main() {
2.2 한 행(줄) 문자열의 입력과 출력 ◀2-8.C▶gets(), puts() 함수로 여러 문자열을 입출력하는 경우 #include <stdio.h> void main() { char buffer1[256]; char buffer2[256]; gets( buffer1 ); gets( buffer2 ); puts( buffer1 ); puts( buffer2 ); } 문자 256개로 구성된 문자열 데이터를 기억시킬 수 있는 변수 buffer1 과 buffer2 을 선언한 문장이다. 키보드에서 입력되는 데이터를 문자열로 입력 받아 지정한 변수에 기억시키라는 문장이다. 지정한 변수에 기억된 값(내용)을 문자열로 화면에 출력하라는 문장이다. 실행결과 홍길동이다. <Enter> 시언어를 배운다. <Enter> 홍길동이다. 시언어를 배운다.

21 2.3 양식에 의한 입력과 출력 (1) printf() (2) scanf() print format 의 약자
2.3 양식에 의한 입력과 출력 (1) printf() (2) scanf() print format 의 약자 Scan format 의 약자

22 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int nai;
2.3 양식에 의한 입력과 출력 맛보기실습 sam.c) 1개의 정수 값을 기억할 수 있는 변수 nai 를 선언한 문장이다. #include <stdio.h> void main() { int nai; scanf("%d", &nai); printf("나는 %d 살이다.", nai); } 키보드에서 키인되는 숫자 1개를 입력받아 nai 변수에 기억시켜라는 문장이다. 실행결과 20 <Enter>  나는 20 살이다. 변수 nai 에 기억된 값을 %d 위치에 표시하여 화면에 출력하라는 문장이다. (보충실습) 이 문장에서 &nai 에서 & 기호를 없애고 nai 라고 수정하여 실행시켜 보라.

23 2.3 양식에 의한 입력과 출력 (1) printf() 지정된 양식에 따라 해당 변수의 데이터 값을 화면에 출력하는 함수이다.
2.3 양식에 의한 입력과 출력 (1) printf() 지정된 양식에 따라 해당 변수의 데이터 값을 화면에 출력하는 함수이다. 구분 사용형식 사용 예 사용법1  printf(문자열변수); printf(name); 사용법2  printf("양식지정문자열", 변수); printf("나는 %d살이다.\n", age);

24 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() {
2.3 양식에 의한 입력과 출력 ◀2-9.C▶ printf() 함수에서 사용형식1의 사용 예1 #include <stdio.h> void main() { char name[20]=“홍길동"; printf( name ); } 문자열 변수 name 에 기억된 값 “홍길동”을 그대로 화면에 출력하라는 문장이다. 실행결과                       홍길동 (보충실습) 이 문장에서 name 변수에 기억시킬 수 있는 한글 문자의 개수는 최고 몇 개인가? 그리고 홍길동 대신에 ”난 시언어를 배운다“ 라고 출력되게 해보라.

25 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() {
2.3 양식에 의한 입력과 출력 ◀2-10.C▶ printf() 함수에서 사용형식1의 사용 예2 #include <stdio.h> void main() { printf(“홍길동”); } “홍길동”라는 문자열을 그대로 화면에 출력하라는 문장이다. 실행결과                        홍길동 (보충실습) 이 문장을 수정하여 화면에 ”난 시언어를 배운다 ”라고 출력되게 해보라.

26 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() {
2.3 양식에 의한 입력과 출력 ◀2-11.C▶ printf() 함수에서 사용형식2의 사용 예 #include <stdio.h> void main() { char name[20] = "홍길동"; printf("나는 %s 이다. \n", name); } 실행결과                     나는 홍길동 이다. 이 문장은 문자열 변수 name 에 기억된 값(홍길동)을 %s 위치에 표시하여 화면에 출력하라는 문장이다.

27 2.3 양식에 의한 입력과 출력 ① printf()에서 양식 지정 문자열 사용하기 구분 선두문자 설 명 일반문자  제어문자
2.3 양식에 의한 입력과 출력 ① printf()에서 양식 지정 문자열 사용하기 [표2-2] printf()에서의 양식지정 문자열을 구성하는 요소 3가지 구분 선두문자 설 명 일반문자  제어문자  변환문자 없음 \ % 출력 메시지의 역할을 하며, 기입한 문자열을 화면에 그대로 출력해 준다. \(백슬러시) 뒤에 지정되는 제어문자의 종류에 따라 출력형태를 바꾸어 출력해 준다. % 뒤에 지정되는 변환문자에 따라 대응하는 인수의 값을 양식(형식)에 맞추어 출력해 준다.

28 2.3 양식에 의한 입력과 출력 printf("나는 %d 살이다. \n", age ); 출력할 변수명 일반 문자 일반 문자
2.3 양식에 의한 입력과 출력 출력할 변수명 일반 문자 일반 문자   printf("나는 %d 살이다. \n", age );  양식(형식) 출력 함수명 변환 문자 제어 문자

29 2.3 양식에 의한 입력과 출력 ② printf()에서 제어문자 사용하기 문자 명칭 기 능 \n \t \v \b \f \r
2.3 양식에 의한 입력과 출력 ② printf()에서 제어문자 사용하기 [표2-3] 제어문자의 종류 문자 명칭 기 능 \n \t \v \b \f \r \a \\ \′ \″ New Line Horizontal Tab Vertical Tab Back Space Form Feed Carriage Return Bell Back Slash Single quote Double quote 커서를 다음 줄의 첫 칸으로 이동 커서를 수평으로 탭만큼 이동 커서를 수직으로 탭만큼 이동 커서를 인쇄 반대방향으로 한 칸 이동 프린트 용지를 한 페이지 전진 커서를 그 줄의 첫 칸으로 이동 컴퓨터에 내장된 벨소리 출력 \ 기호 자체를 출력 ′ 기호 자체를 출력 ″ 기호 자체를 출력 잠깐!!! 제어문자라는 \ 기호(백슬러시 기호)로 시작하는 문자를 말한다. 한글판 운영체제에서는 \ 기호가 \ 기호로 표시된다.

30 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int age=20;
2.3 양식에 의한 입력과 출력 ◀2-12.C▶ 제어문자의 사용 예 #include <stdio.h> void main() { int age=20; printf("나는 홍길동이다. \n"); printf("나는 \n홍길동이다. \n"); } 실행결과                            나는 홍길동이다. 나는 홍길동이다. 이 제어문자가 기입된 위치에서 커서를 줄 바꾸어 다음 줄 첫째 칸으로 이동하게 한다.

31 2.3 양식에 의한 입력과 출력 ③ printf()에서 변환문자 사용하기
2.3 양식에 의한 입력과 출력 ③ printf()에서 변환문자 사용하기 printf("나는 %d 살이다. \n", age );  변수 age 값이 출력될 위치와 형식을 지정하는 변환문자를 정의한 것이다. 제어문자를 정의한 것이다. 잠깐!!! 변환문자라는 것은 % 기호로 시작하는 문자를 말한다.

32 2.3 양식에 의한 입력과 출력 % [플래그] [필드폭] [.정도] 변환문자 % - 12.3 f [사용형식] [사용 예]
2.3 양식에 의한 입력과 출력 [사용형식]  % [플래그] [필드폭] [.정도] 변환문자 [사용 예]  % f 어떤 형태로 값을 변환할 것인가를 지정하는 곳 부동소수점 수를 출력할 때에 소수점 이하 몇 자리까지 출력할 것인지를 지정하는 곳 어떤 데이터 값을 출력할 때에 출력되는 총 자릿수를 지정하는 곳 지정한 총 자리 수 내에서 출력할 데이터의 위치와 모양을 지정하는 곳

33 2.3 양식에 의한 입력과 출력 변환문자 의 미 d o x, X c s f e, E %
2.3 양식에 의한 입력과 출력 [표2-4] 변환문자의 종류 변환문자 의 미 d o x, X c s f e, E % 10진수(decimal)형 정수로 변환하여 출력해 준다. 8진수(octal)형 정수로 변환하여 출력해 준다. 16진수(hexadecimal)형 정수로 변환하여 출력하며, x는 소문자로, X는 대문자로 표시하여 출력해 준다. 한 개의 문자로 변환하여 출력해 준다. 문자열로 변환하여 출력해 준다. 부동소수점 형태로 변환하여 출력(float, double 공통)하며, 소수점 이하 자리 수는 기본적으로 6자리까지 출력해 준다. 지수 형태로 출력해 주며, e는 소문자로, E는 대문자로 출력 하며, 이때 소수점 이하 자리 수는 6자리로 하여 출력해 준다. % 문자를 출력해 준다.

34 2.3 양식에 의한 입력과 출력 실습문제 다음에 보인 프로그램에서 ■부분을 채워
2.3 양식에 의한 입력과 출력 실습문제 다음에 보인 프로그램에서 ■부분을 채워 제시한 <실행결과>와 같이 출력되도록 프로그램을 완성시켜라. 파일명 : COM.C #include <stdio.h> void main() { char irum[20] = "홍길동”; int nai = 19; float ki = 180.5; printf(“난 ■ 이다.\n”, irum); printf(“난 ■ 살이다.\n”, nai); printf(“난 ■ 이다.\n”, ki); } 실행결과                                난 홍길동 이다. 난 19 살이다. 난 이다.

35 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int a=11;
2.3 양식에 의한 입력과 출력 ◀2-13.C▶ 정수형 변환문자 사용 예 #include <stdio.h> void main() { int a=11; printf("10진 정수형으로 %d 이다. \n", a); printf("8진 정수형으로 %o 이다. \n", a); printf("16진 정수형으로 %x 이다. \n", a); printf("16진 정수형으로 %X 이다. \n", a); } 실행결과                                   10진 정수형으로 11 이다. 8진 정수형으로 13 이다. 16진 정수형으로 b 이다. 16진 정수형으로 B 이다. (보충실습1) 이 문장에서 %d 를 %ㅇ 로 수정하여 실행시켜 보라. (보충실습2) 이번에는 %ㅇ 를 %x 로 수정하여 실행시켜 보라. (보충실습3) 이번에는 %x 를 %X 로 수정하여 실행시켜 보라.

36 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int a=11;
2.3 양식에 의한 입력과 출력 ◀2-14.C▶ 정수 값에서 필드폭을 지정한 경우 #include <stdio.h> void main() { int a=11; printf("10진 정수형으로 %d 이다. \n", a); printf("10진 정수형으로 %15d 이다. \n", a); } 실행결과                                                             10진 정수형으로 11 이다. 10진 정수형으로               11 이다. (보충실습) 이 문장에서 %d 를 %15d 로 수정하여 실행시켜 보라.

37 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int a=11;
2.3 양식에 의한 입력과 출력 ◀2-15.C▶ 정수 값에서 플래그를 지정한 경우 #include <stdio.h> void main() { int a=11; printf("10진 정수형으로 %d 이다. \n", a); printf("10진 정수형으로 %15d 이다. \n", a); printf("10진 정수형으로 %015d 이다. \n", a); printf("10진 정수형으로 %-15d 이다. \n", a); } 실행결과                                                          10진 정수형으로 11 이다. 10진 정수형으로 이다. 10진 정수형으로 이다.   10진 정수형으로 11            이다. (보충실습1) 이 문장에서 %d 를 %15d 로 수정하여 실행시켜 보라. (보충실습2) 이번에는 %015d 로 수정하여 실행시켜 보라. (보충실습3) 이번에는 %-15d 로 수정하여 실행시켜 보라.

38 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { char b='A';
2.3 양식에 의한 입력과 출력 ◀2-16.C▶ 문자형 변환문자 사용 예 #include <stdio.h> void main() { char b='A'; printf("문자형으로 %c 이다. \n", b); printf("10진 정수형으로 %d 이다. \n", b); } 실행결과                                           문자형으로 A 이다. 10진 정수형으로 65 이다. (보충실습) 이 문장에서 %c 를 %d 로 수정하여 실행시켜 보라.

39 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { char b='A';
2.3 양식에 의한 입력과 출력 ◀2-17.C▶ 문자형에서 필드폭을 지정한 경우 #include <stdio.h> void main() { char b='A'; printf("문자형으로 %c 이다. \n", b); printf("문자형으로 %15c 이다. \n", b); printf("문자형으로 %-15c 이다. \n", b); } 실행결과                                           문자형으로 A 이다. 문자형으로              A 이다. 문자형으로 A              이다. (보충실습1) 이 문장에서 %c 를 %15c 로 수정하여 실행시켜 보라. (보충실습2) 이번에는 %-15c 로 수정하여 실행시켜 보라.

40 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() {
2.3 양식에 의한 입력과 출력 ◀2-18.C▶ 문자열형 변환문자 사용 예 #include <stdio.h> void main() { char c[30]="computer"; printf("문자열형으로 %s 이다. \n", c); } 실행결과                                                    문자열형으로 computer 이다.

41 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() {
2.3 양식에 의한 입력과 출력 ◀2-19.C▶ 문자열형에서 필드폭 사용 예 #include <stdio.h> void main() { char c[30]="computer"; printf("문자열형으로 %s 이다. \n", c); printf("문자열형으로 %15s 이다. \n", c); printf("문자열형으로 %-15s 이다. \n", c); } 실행결과                                            문자형으로 computer 이다. 문자형으로         computer 이다. 문자형으로 computer       이다. (보충실습1) 이 문장에서 %s 를 %15s 로 수정하여 실행시켜 보라. (보충실습2) 이번에는 %-15s 로 수정하여 실행시켜 보라.

42 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() {
2.3 양식에 의한 입력과 출력 ◀2-20.C▶ 실수형 변환문자 사용 예 #include <stdio.h> void main() { double d=10.123; printf("실수형(f)으로 %f 이다. \n", d); printf("실수형(e)으로 %e 이다. \n", d); printf("실수형(E)으로 %E 이다. \n", d); } C에서 %f는 기본적으로 소수점 이하 6 자리까지 출력해 준다. 실행결과                                                  실수형(f)으로 이다. 지수형(e)으로 e+001 이다. 지수형(E)으로 E+001 이다. (보충실습1) 이 문장에서 %f 를 %e 로 수정하여 실행시켜 보라. (보충실습2) 이번에는 %E 로 수정하여 실행시켜 보라.

43 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() {
2.3 양식에 의한 입력과 출력 ◀2-21.C▶ 실수 값에서 필드폭과 정도의 지정 예 #include <stdio.h> void main() { double d=10.123; printf("실수형(f)으로 %f 이다. \n", d); printf("실수형(f)으로 %15f 이다. \n", d); printf("실수형(f)으로 %15.3f 이다. \n", d); printf("실수형(f)으로 %15.10f 이다. \n", d); printf("실수형(f)으로 %15.0f 이다. \n", d); }  실행결과                                                        실수형(f)으로 이다. 실수형(f)으로       이다. 실수형(f)으로         이다. 실수형(f)으로  이다. 실수형(f)으로             10 이다. (보충실습1) 이 문장에서 %f 를 %15f 로 수정하여 실행시켜 보라. (보충실습2) 이번에는 %15.3f 로 수정하여 실행시켜 보라. (보충실습3) 이번에는 %15.10f 로 수정하여 실행시켜 보라. (보충실습4) 이번에는 %15.0f 로 수정하여 실행시켜 보라.

44 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() {
2.3 양식에 의한 입력과 출력 ◀2-22.C▶ 실수 값에서 플래그의 사용 예 #include <stdio.h> void main() { double d=10.123; printf("실수형(f)으로 %f 이다. \n", d); printf("실수형(f)으로 %-15.3f 이다. \n", d); printf("실수형(f)으로 %015.3f 이다. \n", d); } 실행결과                                                           실수형(f)으로 이다. 실수형(f)으로           이다. 실수형(f)으로 이다. (보충실습1) 이 문장에서 %f 를 %-15.3f 로 수정하여 실행시켜 보라. (보충실습2) 이번에는 %015.3f 로 수정하여 실행시켜 보라.

45 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int a=11;
2.3 양식에 의한 입력과 출력 ◀2-23.C▶ 여러 종류의 값을 출력하는 경우 #include <stdio.h> void main() { int a=11; char b='A'; char c[10]="computer"; double d=12.345; printf("정수: %d, 문자: %c, 문자열: %s, 실수: %f \n", a, b, c, d); } 실행결과                                                                   a: 11, b: A, c: computer, d:

46 2.3 양식에 의한 입력과 출력 퀴즈 풀어보기 교제 46 쪽 ( 5번~18번 )

47 2.3 양식에 의한 입력과 출력 (2) scanf() 지정된 양식에 따라 키보드로부터 데이터를 입력시켜 주는 함수이다.
2.3 양식에 의한 입력과 출력 (2) scanf() 지정된 양식에 따라 키보드로부터 데이터를 입력시켜 주는 함수이다. [사용형식] scanf( "양식지정문자열", 포인터변수 ); [사용 예] scanf( "%d", &a ); 입력 받을 경우에는 변수명 앞에 & 기호를 붙여 포인터변수로 만들어 주어야 한다. 잠깐!!! 여기서 포인터변수는 그 변수의 값을 기억시키기 위한 기억장소(메모리)의 주소를 말한다. 그리고 & 기호는 AND를 나타내는 연산자 기호로서, 앰퍼샌드(ampersand)라고 읽는다.

48 2.3 양식에 의한 입력과 출력 잠깐!!! scanf() 함수 사용시 주의사항
2.3 양식에 의한 입력과 출력 잠깐!!! scanf() 함수 사용시 주의사항 scanf() 함수를 이용하여 단순히 정수1개, 실수1개, 문자1개의 값을 입력 받을 때에는 변수 앞에 & 기호를 붙여야 한다. 그러나 여러 개의 문자로 결합된 문자열을 입력 받을 때에는 문자열변수 앞에 & 기호를 붙이지 않는다.

49 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int a;
2.3 양식에 의한 입력과 출력 변수 a는 정수변수이기 때문에 & 기호를 붙여야 한다. ◀2-24.C▶ 정수 값을 입력 받는 경우 #include <stdio.h> void main() { int a; scanf("%d", &a ); printf("입력된 정수 값은 %d 이다. \n", a); } 실행결과                                     123 <Enter> 입력된 정수는 123 이다. (보충실습) 이 문장에서 &a 를 & 기호를 없애고 그냥 a 로 수정하여 실행시켜 보라. 에러가 발생할 것이다.

50 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { float b;
2.3 양식에 의한 입력과 출력 ◀2-25.C▶ 실수 값을 입력 받는 경우 #include <stdio.h> void main() { float b; scanf("%f", &b ); printf("입력된 실수 값은 %f 이다. \n", b); } 변수 b는 실수 값을 기억하는 실수 변수이기 때문에 변수명 앞에 & 기호를 붙여야 한다. 실행결과                                            12.34 <Enter> 입력된 실수는 이다. (보충실습) 이 문장에서 &b 를 &기호를 없애고 그냥 b 로 수정하여 실행시켜 보라. 에러가 발생할 것이다.

51 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { char c;
2.3 양식에 의한 입력과 출력 ◀2-26.C▶ 한 개의 문자를 입력 받는 경우 변수 c는 한 개의 문자를 기억하는 문자형 변수이기 때문에 변수명 앞에 & 기호를 붙여야 한다. #include <stdio.h> void main() { char c; scanf("%c", &c ); printf("입력된 문자는 %c 이다. \n", c); } 실행결과                                  A <Enter> 입력된 문자는 A 이다. (보충실습) 이 문장에서 &c 를 &기호를 없애고 그냥 c 로 수정하여 실행시켜 보라. 에러가 발생할 것이다.

52 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { char d[20];
2.3 양식에 의한 입력과 출력 ◀2-27.C▶ 한 개의 문자열을 입력 받는 경우 #include <stdio.h> void main() { char d[20]; scanf("%s", d ); printf("입력된 문자열은 %s 이다. \n", d); } 변수 d는 여러 개의 문자로 구성된 문자열을 기억하는 문자열변수이기 때문에 변수 d 앞에 &기호를 붙이지 않는다. 그 이유는 문자열변수는 스스로 포인터변수이기 때문이다. 실행결과                                              computer <Enter> 입력된 문자열은 computer 이다. (보충실습) 변수 d 가 정수변수, 실수변수, 문자변수일 경우에서처럼 변수 d 앞에 & 기호를 붙여 &d 라고 지정해 실행시켜 보자. 이때 만약 실행결과가 제대로 표시되더라도 잘못된 결과이다.

53 2.3 양식에 의한 입력과 출력 ① scanf()에서의 양식 지정 문자열 구분 설 명 공백문자 일반문자 변환문자열
2.3 양식에 의한 입력과 출력 ① scanf()에서의 양식 지정 문자열 [표2-5] scanf()에서의 양식지정 문자열의 종류 구분 설 명 공백문자 일반문자 변환문자열 입력 데이터의 항목을 구분하는 역할을 한다. 입력 데이터의 항목을 구분하는데 사용한다. %와 함께하는 변환문자에 따라 대응하는 변수를 양식(형식)에 맞추어 입력시켜 준다.

54 2.3 양식에 의한 입력과 출력 ② 공백문자 및 일반문자 ☞scanf()에서 일반문자와 공백문자는
2.3 양식에 의한 입력과 출력 ② 공백문자 및 일반문자 ☞scanf()에서 일반문자와 공백문자는 입력 데이터 항목을 구분시키기 위한 목적으로 사용한다. ☞이때 특별히 어떤 일반문자열을 지정하면, 그 지정된 문자열로 입력항목이 구분된다. ☞만약, 지정하지 않으면 기본적으로 공백문자에 의해서 입력항목을 구분하여 입력한다.

55 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int a, b, c;
2.3 양식에 의한 입력과 출력 ◀2-28.C▶ 공백문자로 데이터항목을 구분하여 입력 받는 경우 #include <stdio.h> void main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); printf("a=%d, b=%d, c=%d \n", a, b, c); } 변환문자와 변환문자 사이의 공백은 공백으로 입력데이터 항을 구분시켜 입력되게 한다. 실행결과                                   <Enter>           a=10, b=20, c=30 잠깐!!! 키보드 입력에서 데이터와 데이터 값을 구분하여 입력할 수 있는 키(key)에는 기본적으로 다음의 3 가지 키가 있다. 스페이스바(space bar)키 탭(tab)키 엔터(enter)키

56 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int a, b, c;
2.3 양식에 의한 입력과 출력 ◀2-29.C▶ 컴머(,)로 데이터 항목을 구분시켜 입력 받을 경우 #include <stdio.h> void main() { int a, b, c; scanf("%d, %d, %d", &a, &b, &c); printf("a=%d, b=%d, c=%d \n", a, b, c); } 실행결과                                10,20,30 <Enter> a=10, b=20, c=30 변환문자와 변환문자 사이의 컴머(,) 문자는 컴머로 입력데이터 항을 구분시켜 입력되게 한다.

57 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int a, b, c;
2.3 양식에 의한 입력과 출력 ◀2-30.C▶ 일반문자로 데이터 항목을 구분시켜 입력 받을 경우  #include <stdio.h> void main() { int a, b, c; scanf("%dA%dA%d", &a, &b, &c); printf("a=%d, b=%d, c=%d \n", a, b, c); } 실행결과                                        10A20A30 <Enter> a=10, b=20, c=30  이 A문자는 A문자로 입력데이터 항을 구분시켜 입력되게 한다.

58 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int a, b, c;
2.3 양식에 의한 입력과 출력 ◀2-31.C▶ 문자열로 데이터 항을 구분시켜 입력 받을 경우 #include <stdio.h> void main() { int a, b, c; scanf("%dABC%dABC%d", &a, &b, &c); printf("a=%d, b=%d, c=%d \n", a, b, c); } 실행결과                                    10ABC20ABC30 <Enter> a=10, b=20, c=30 이 ABC 문자열은 ABC로 입력데이터 항을 구분시켜 입력되게 한다.

59 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() { int a, b, c;
2.3 양식에 의한 입력과 출력 ◀2-32.C▶ 입력된 숫자에서 원하는 자리 수만큼 끊어서 입력 받을 경우 #include <stdio.h> void main() { int a, b, c; scanf("%2d %3d %2d", &a, &b, &c); printf("a=%d, b=%d, c=%d \n", a, b, c); } 실행결과                                   <Enter> a=12, b=345, c=67 입력되는 정수 값에서 여기 지정된 숫자의 개수만큼씩 끊어 입력 받아 해당변수에 기억시킨다.

60 2.3 양식에 의한 입력과 출력 #include <stdio.h> void main() {
2.3 양식에 의한 입력과 출력 ◀2-33.C▶ 입력된 문자열서 원하는 자리 수만큼 끊어서 입력 받을 경우 #include <stdio.h> void main() { char a[10], b[10], c[10]; scanf("%3s %5s %7s", a, b, c); printf("a=%s, b=%s, c=%s \n", a, b, c); } 실행결과                                                                        ABCDEFGHIJKLMNOPQRSTUVWXYZ <Enter> a=ABC, b=DEFGH, c=IJKLMNO 입력되는 문자열에서 여기 지정된 숫자의 개수만큼씩 끊어 입력 받아 해당변수에 기억시킨다.

61 2.3 양식에 의한 입력과 출력 퀴즈 풀어보기 교제 55 쪽 ( 19번~23번 )

62 제2장 연습문제 풀이 교제 57 쪽

63 Question and Answer


Download ppt "2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수 khlee@dsc.ac.kr."

Similar presentations


Ads by Google