Presentation is loading. Please wait.

Presentation is loading. Please wait.

제 10 강 문자 입출력.

Similar presentations


Presentation on theme: "제 10 강 문자 입출력."— Presentation transcript:

1 제 10 강 문자 입출력

2 개요 표준 입력/출력 파일이란? 파일을 복사하는 간단한 프로그램 만들기 글자를 읽어들이는 방법 글자를 출력하는 방법
int – 기본적인 정수 타입 goto 와 label - 프로그램의 실행 흐름 바꾸기

3 한 글자 Echo 알고리즘 한 글자를 받아들인다. 받아들인 글자를 출력한다.

4 CFL 문자 입력 get a character from "standard input device"
store the result into temporary place getchar

5 CFL 문자 출력 put the given character to the "standard output device"
putchar a

6 lab10_01 CFL 을 이용하여 다음 프로그램을 작성해보라. getchar를 이용하여 문자를 읽어들인다.
c에 있는 내용을 putchar를 이용하여 출력한다. 여러가지 문자를 가지고 테스트해본다.

7 필요한 요소들 한 글자를 받아들인다: c = getchar(); // c 는 정수 변수
받아들인 글자를 출력한다. putchar(c);

8 c = getchar() ; getchar(); 문장의 끝 ② ① 정수 변수의 이름 함수의 이름 괄호가 있어서 함수인지 알게됨
Assignment. 좌측 변수의 값을 우측 것과 같게 만든다.  라고 기억.

9 Quiz 10_01

10 putchar(c) ; putchar(c); 함수의 이름 함수에게 일을 시키기 위해 전해주는 자료
= parameter 또는 argument

11 putchar() 함수 예제 putchar('c'); // 문자 상수  출력: c
c = 'a'; putchar(c);  출력: a x = '1';  출력: 1 putchar(1); ???

12 특별한 문자의 출력 putchar('\n'); putchar('\\'); putchar('\''); putchar('\t');

13 실습 lab10_02 printf("hello\n"); 와 같은 효과를 내도록 하되 printf를 쓰지 않고 putchar만을 여러 번 써서 출력해보라. 파일명 putchar1.c

14 실습 lab10_03 lab10_02와 동일한 출력을 하는 프로그램을 작성하되 다음의 제약 조건을 고려하라.
putchar('h'); 와 같이 문자 상수를 쓰지 않고 변수 이름만을 쓴다. 예를 들어 x가 정수 상수라면 x = 'h'; putchar(x); 와 같이 쓴다. 파일명: putchar2.c

15 실습 lab10_04/putchar3.c 다음과 같은 내용을 putchar만을 여러 번 이용하여 출력하라. (주의: 따옴표까지 출력해야한다. 총 8 글자이다.) '\\' '\n'

16 getchar() 의 실행 c = getchar(); ① 기다린다 ② 키입력+enter ④변수 c 에 이 내용을 복사한다.
③임시 공간에 문자 1을 집어넣는다. 버퍼에는 23\n 세 글자가 남아있다.

17 실습 lab10_05 글자 하나를 표준 입력에서 getchar()를 이용, 입력하여 입력된 글자를 그대로 출력하는 프로그램 echo1.c를 작성하라. 실행 예시: [c01] a.out <enter> a<enter> a[c01]

18 이것도 글자다 lab10_05 에서 a.out 실행 아무것도 없이 그냥 키만 치면? [cho@turing cho]$ a.out
Enter lab10_05 에서 a.out 실행 아무것도 없이 그냥 키만 치면? cho]$ a.out a cho]$ a.out cho]$ Enter

19 실습 lab10_06 세 글자를 읽어서 그대로 출력하는 C 프로그램을 작성하라. (말을 잘 새겨들을 것) echo2.c

20 생각하는 페이지 putchar()도 출력하는 함수이고 printf도 출력하는 함수이다. 어떻게 다른가?
getchar()도 입력하는 함수이고 scanf()도 입력하는 함수이다. 어떻게 다른가?

21 Quiz 10_02

22 goto first: // label 자체는 실행문이 아니다. ... goto first; goto anylabel;

23 goto의 효과 printf("First\n"); goto skip; printf("Second\n"); skip:
printf("Third\n"); First Second Third

24 goto의 효과 skip: printf("First\n"); goto skip; printf("Second\n");
printf("Third\n"); First Second Third

25 FCL 실습 (lab10_06) a = 1로 만들고 a 값을 계속해서 1 씩 증가 시키는 FCL프로그램을 작성하라.
힌트: a + 1을 계산 한 결과를 다시 a에 저장하고 반복하면 된다 (connection을 다시 앞으로 연결).

26 Program listing #include <stdio.h> int main(){ int c; first:
c = getchar(); putchar(c); goto first; }

27 실습 lab10_07 입력하는 글자를 끝없이 echo 하는 프로그램을 작성하라. file: echo3.c
주의: 프로그램 실행을 종료하려면 ctrl-C를 누른다.

28 조건부 실행 if (a == b) goto XX; // 같으면 또는 if (a != b) goto XX; // 다르면 F T
... F T a = = b if (a == b) goto XX; // 같으면 또는 if (a != b) goto XX; // 다르면

29 조건부 echo 알고리즘 1. 한 글자를 읽어 들인다. 2. 읽은 글자를 출력한다.
3. 만일 읽은 글자가 마침표가 아니면 다시 앞으로 간다.

30 Primitives 읽어들인다? c = getchar(); 써 넣는다? putchar(c);
마침표가 아니면? if (c != '.') 1 단계로? goto XX;

31 실습 lab10_08 입력 중에 마침표가 있을 때까지만 echo 하는 프로그램을 작성하라. 파일명: echo4.c

32 제 10 강 끝.


Download ppt "제 10 강 문자 입출력."

Similar presentations


Ads by Google