강의록 5 => 04 전처리와 입출력

Download Report

Transcript 강의록 5 => 04 전처리와 입출력

04 전처리와 입출력
세종대학교 최옥경 교수
Review
다음과 같이 실행되도록 코딩하시오.
지하철 역 이름을 입력 받아서 다음과 같이 출력
되도록 코딩 하시오.
2
Review
다음 소스에서의 에러를 찾아보고 수정하
시오.
 char a = “a”;
 int money = 2,300;
 double float phi = 3.14;
 printf(“%d”, ‘A’); //문자 A를 출력
3
헤더파일
 텍스트 파일
 헤더파일(header file)은 확장자가 *.h로
• 전처리기 지시자인 #include, #define 등과 자료형의 재정의, 함수의 원형
(prototype)을 포함하는 텍스트 파일
 다음은 함수 main() 위에 항상 끼워 넣은 헤더 파일 stdio.h의 일부
…
typedef unsigned int size_t;
…
#define EOF
(-1)
…
_CRTIMP int __cdecl printf(const char *, ...);
…
#define getchar()
getc(stdin)
#define putchar(_c)
putc((_c),stdout)
…
 위 헤더파일은 시스템 헤더파일로 개발도구에서 제공하는 헤더파일
4
시스템, 사용자 헤더파일
 사용자 헤더 파일
 사용자가 직접 작성한 헤더파일은 지시자 #include를 이용하는 경우
#include <stdio.h>
#include “myheader.h”
 헤더파일의 큰 따옴표는 헤더파일이 기술된 폴더와 시스템 인클루드 폴더
를 차례로 검색
 시스템 헤더 파일은 대부분 개발도구가 설치된 폴더에서 하부 [include]라
는 이름의 폴더에 존재
 시스템 헤더 파일
5
사용자 헤더파일
 myheader.c와 myheader.h로 나누어 처리
 헤더 파일 myheader.h는 소스 myheader.c와 동일한 폴더에 저장
 Visual C++에서의 헤더 파일
 Visual C++에서는 개발 도구 환경에서 사용자가 직접 만든 헤더 파일만을 구분
할 수 있는 창을 제공
6
기호상수 정의
 #define
 전처리기 지시자인 #define은 소스에서 지정된 기호상수를 정의된 치환문
자열로 대체(치환)하는 역할 수행
 장점
 지시자 #define은 시스템에 따라 변할 수 있는 상수를 한번에 수정할 수 있
고, 수정되는 한 부분만 검사하면 되므로 이식성과 신뢰성이 증대
7
인자의 이용
 인자가 있는 매크로의 치환
8
주의 사항
 괄호의 이용
 공백에 의한 오류
9
예제
 사각형의 한 변의 길이를 입력 받아 사각형의 넓이 구하기
10
금주의 실습 과제 #4
 다음과 같은 문장을 출력하는 프로그램을 작성하여 레포트제출 전용
사이트에 파일을 올리기 바랍니다.
 제목과 파일명은 반드시 “학번_4.zip” (ex) “090203_4.zip” 로 업
로드하기 바랍니다.
 프로그램 목적
 자료형 double인 원의 반지름을 입력 받아, 원의 둘레와 원의 면적을 구하
는 프로그램을 작성
 파일 구성





프로그램 저장 장소 : c(d):\본인이생성한폴더
프로젝트 이름 : circle
소스 파일 이름 : circle.c
헤더 파일 : circle.h
업로드할 파일명 : 학번_4.zip ex) “090203_4.zip”
금주의 실습 과제 #4
 헤더 파일과 매크로를 작성
 헤더파일 circle.h에는 매크로와 출력을 위한 시스템 헤더 파일을 첨가하는
소스 구성
• 원주율 3.14를 PHI 정의
• => #define PHI 3.14
• 매크로 CIRCUM(r)은 인자 x가 반지름인 원에서 원의 둘레를 구하는 매
크로를 정의
• => #define CIRCUM(r) (2*PHI*r)
• 매크로 AREA(r)는 인자 x가 반지름인 원에서 원의 면적을 구하는 매크
로를 정의
• => #define AREA(r) (PHI*r*r)
 소스 파일 circle.c에서는 double 형의 반지름을 표준 입력으로 받아 위의
결과를 출력
• 반지름은 표준입력으로 저장
• 반지름과 원의 둘레(매크로 CIRCUM(r) 이용)를 출력
• 반지름과 원의 면적(매크로 AREA(r) 이용)을 출력
12
파일
 소스파일
 헤더파일
 결과
13
금주의 홈과제#4
 Deadline : 다음주 수업시간전까지
 Title : [홈과제4] 학번_성명
 제출장소 : http://okwow.net =>레포트 제출사이트
 제출 파일명 : 학번_성명.zip
 1개의 c 파일과 1개의 h(header) 파일을 모두 압축하여 제출
( h1.c, h1.h)
 주석도 반드시 작성해야 합니다.
 다른 사람에게 파일을 받아서 그대로 제출시 0점 처리
 중간고사 시험에 나오므로 직접 한번 해보기 바랍니다.
14
Homework : 사칙연산
15