제 10 강 문자 입출력
개요 표준 입력/출력 파일이란? 파일을 복사하는 간단한 프로그램 만들기 글자를 읽어들이는 방법 글자를 출력하는 방법 int – 기본적인 정수 타입 goto 와 label - 프로그램의 실행 흐름 바꾸기
한 글자 Echo 알고리즘 한 글자를 받아들인다. 받아들인 글자를 출력한다.
CFL 문자 입력 get a character from "standard input device" store the result into temporary place getchar
CFL 문자 출력 put the given character to the "standard output device" putchar a
lab10_01 CFL 을 이용하여 다음 프로그램을 작성해보라. getchar를 이용하여 문자를 읽어들인다. c에 있는 내용을 putchar를 이용하여 출력한다. 여러가지 문자를 가지고 테스트해본다.
필요한 요소들 한 글자를 받아들인다: c = getchar(); // c 는 정수 변수 받아들인 글자를 출력한다. putchar(c);
c = getchar() ; getchar(); 문장의 끝 ② ① 정수 변수의 이름 함수의 이름 괄호가 있어서 함수인지 알게됨 Assignment. 좌측 변수의 값을 우측 것과 같게 만든다. 라고 기억.
Quiz 10_01
putchar(c) ; putchar(c); 함수의 이름 함수에게 일을 시키기 위해 전해주는 자료 = parameter 또는 argument
putchar() 함수 예제 putchar('c'); // 문자 상수 출력: c c = 'a'; putchar(c); 출력: a x = '1'; 출력: 1 putchar(1); ???
특별한 문자의 출력 putchar('\n'); putchar('\\'); putchar('\''); putchar('\t');
실습 lab10_02 printf("hello\n"); 와 같은 효과를 내도록 하되 printf를 쓰지 않고 putchar만을 여러 번 써서 출력해보라. 파일명 putchar1.c
실습 lab10_03 lab10_02와 동일한 출력을 하는 프로그램을 작성하되 다음의 제약 조건을 고려하라. putchar('h'); 와 같이 문자 상수를 쓰지 않고 변수 이름만을 쓴다. 예를 들어 x가 정수 상수라면 x = 'h'; putchar(x); 와 같이 쓴다. 파일명: putchar2.c
실습 lab10_04/putchar3.c 다음과 같은 내용을 putchar만을 여러 번 이용하여 출력하라. (주의: 따옴표까지 출력해야한다. 총 8 글자이다.) '\\' '\n'
getchar() 의 실행 c = getchar(); ① 기다린다 ② 키입력+enter ④변수 c 에 이 내용을 복사한다. ③임시 공간에 문자 1을 집어넣는다. 버퍼에는 23\n 세 글자가 남아있다.
실습 lab10_05 글자 하나를 표준 입력에서 getchar()를 이용, 입력하여 입력된 글자를 그대로 출력하는 프로그램 echo1.c를 작성하라. 실행 예시: [c01] a.out <enter> a<enter> a[c01]
이것도 글자다 lab10_05 에서 a.out 실행 아무것도 없이 그냥 키만 치면? [cho@turing cho]$ a.out Enter lab10_05 에서 a.out 실행 아무것도 없이 그냥 키만 치면? [cho@turing cho]$ a.out a a[cho@turing cho]$ a.out [cho@turing cho]$ Enter
실습 lab10_06 세 글자를 읽어서 그대로 출력하는 C 프로그램을 작성하라. (말을 잘 새겨들을 것) echo2.c
생각하는 페이지 putchar()도 출력하는 함수이고 printf도 출력하는 함수이다. 어떻게 다른가? getchar()도 입력하는 함수이고 scanf()도 입력하는 함수이다. 어떻게 다른가?
Quiz 10_02
goto first: // label 자체는 실행문이 아니다. ... goto first; goto anylabel;
goto의 효과 printf("First\n"); goto skip; printf("Second\n"); skip: printf("Third\n"); First Second Third
goto의 효과 skip: printf("First\n"); goto skip; printf("Second\n"); printf("Third\n"); First Second Third
FCL 실습 (lab10_06) a = 1로 만들고 a 값을 계속해서 1 씩 증가 시키는 FCL프로그램을 작성하라. 힌트: a + 1을 계산 한 결과를 다시 a에 저장하고 반복하면 된다 (connection을 다시 앞으로 연결).
Program listing #include <stdio.h> int main(){ int c; first: c = getchar(); putchar(c); goto first; }
실습 lab10_07 입력하는 글자를 끝없이 echo 하는 프로그램을 작성하라. file: echo3.c 주의: 프로그램 실행을 종료하려면 ctrl-C를 누른다.
조건부 실행 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; // 다르면
조건부 echo 알고리즘 1. 한 글자를 읽어 들인다. 2. 읽은 글자를 출력한다. 3. 만일 읽은 글자가 마침표가 아니면 다시 앞으로 간다.
Primitives 읽어들인다? c = getchar(); 써 넣는다? putchar(c); 마침표가 아니면? if (c != '.') 1 단계로? goto XX;
실습 lab10_08 입력 중에 마침표가 있을 때까지만 echo 하는 프로그램을 작성하라. 파일명: echo4.c
제 10 강 끝.