Ⅰ 개념
1. 두 개의 서로 다른 대상간의 공통된 경계
2. 라이브러리의 구현과 그 라이브러리를 사용하는 프로그램간의 경계
3. 라이브러리를 구현하는 프로그래머와 라이브러리를 사용하는 프로그래머간의 협약을 나타냄.
4. C에서 인터페이스는 전형적으로 header file(.h)로 표현됨
Ⅱ 라이브러리 개발
1. 인터페이스를 위한 헤더파일(.h)
2. 구현을 위한 소스파일(.c)
Ⅲ 인터페이스 구현
1. 하나의 인터페이스가 다양한 경로를 통해 여러 번 내포되더라도 컴파일러가 매번 다시 읽어들이지 않도록 하기 위해 이렇게 한다. name.h 라는 파일일 경우...
Ⅰ 텍스트 파일와 이진 파일
1. 텍스트 파일(ASCII file)
① ASCII 문자들로만 구성되어진 파일.
② 연속된 모든 문자들이 일차원적으로 나열.( \n 등도 포함 )
③ EOF로 끝남
2. 이진 파일(binary file)
① 모든 데이터가 있는 그대로, 연속적으로 저장되어 있다.
Ⅱ C에서의 파일 제어 개념
1. C언어는 컴퓨터의 주변장치(키보드, 화면, 프린터 등)를 모두 하나의 파일로 취급한다.
2. 스트림(stream) :: C에서 입출력 동작을 수행할 때 사용하는 개념적인 데이터 이동 체계.
3. FILE* 타입의 변수를 선언해 사용 ( stdio.h 에 정의 )
① 실제 파일 처리를 관리하기 위해 시스템이 필요한 정보를 저장하는 사용됨
② 시스템마다 다양한 파일 시스템 구조의 차이를 극복할 수 있게 함
표준적인 조작 방법을 제공
4. C언어의 표준 스트림
① stdin :: 표준입력. 키보드
② stdout :: 표준출력. 화면
③ stderr :: 표준에러. 화면
④ stdprn :: 표준 프린터, 프린터
⑤ stdaux :: 표준 외부장치, 직렬포트
Ⅲ 파일 열고 닫기
1. fopen()
① filePointer = fopen( filename, mode );
② filename : 파일이름을 나타내는 문자열
③ mode : 데이터 전송 방식을 기술하는 문자열
ⓐ "r" :: read
- 읽기모드. 이미 존재하고 있는 파일이어야 한다.
ⓑ "w" :: write
- 쓰기모드. 존재하지 않으면 새로 생성. 존재하는 파일이면 overwrite
ⓒ "a" :: append
- 추가모드. 이미 존재하는 파일이면 덧붙여씀.
2. fclose()
① fclose( filePointer );
② open 한 파일은 반드시 close 하자!
Ⅳ 문자 입출력
1. getc()
① int getc( FILE *infile );
② 파일에서 한 문자를 읽어 그 값을 retrun.
2. putc()
① int putc( int ch, FILE *outfile );
② 지정한 파일에 한 문자(첫번째 인수)를 출력
Ⅴ 줄단위 입출력
1. fgets()
① char* fgets( char buffer[], int bufSize, FILE* infile );
② infile이 가르키는 파일의 내용을 읽어 buffer에 저장.
③ \n을 만나거나 bufSize만큼 읽을때까지.
④ 읽혀진 마지막 문자는 ‘\n’
⑤ buffer에 읽혀진 문자 다음에 ‘\0’ 삽입
⑥ 파일의 끝에서 호출되면 NULL을 리턴
2. fputs()
① void fputs( char* str, FILE* outfile);
② str이 가르키는 문자열의 내용을 outfile이 가르키는 파일에 write
Ⅵ 형식화된 입출력
1. printf()
① printf( control_string, … );
② 항상 표준출력(stdout)에 출력
2. fprintf()
① fprintf( output_stream, control_string, … );
② 첫번째 인수로 FILE* 를 취함. 그 파일에 출력
3. sprintf()
① sprintf( character_array, control_string,… );
② 첫번째 인수로 문자 배열(char *)을 취함. 그 배열에 출력
4. scanf()
① scanf( control_string, … );
② 항상 표준입력(stdin)에서 읽어들임
5. fscanf()
① fscanf( input_stream, control_string, … );
② 첫번째 인수로 FILE* 를 취함. 그 파일에서 읽어들임
6. sscanf()
① sscanf( character_array, control_string, … );
② 첫번째 인수로 문자 배열(char *)을 취함. 그 배열에서 읽어들임
7. scanf 계열 함수.
① 리턴값 :: 성공적으로 매칭되어 읽혀진 갯수
② 투명 문자(space, ‘\t’, ‘\n’)가 나타나면 scanf는 다음의 투명 문자가 아닌 문자 전까지 넘어간다
③ 숫자필드 크기(%기호뒤의..)는 필드에서 읽을 문자의 최대값을 나타냄
int: %d
float: %f(=%e =%g)
double: %lf
%c: 한 문자, 투명 문자도 읽어들임
%s: 첫 투명문자가 나오기 전까지의 문자열
%[ … ], %[^… ]
%[0123456789] : 숫자들을 문자열로 read
%[^.!?] :: ^뒤의 문자가 나오기전까지 read( ^뒤의 문자는 안읽는다.)
[CODE]
<table>
<tr>
<td> 여기에 내용을 입력한다. </td>
</tr>
</table>
* <table>..</table>은 표의 시작과 끝을 알리고,
* <tr>..</tr>은 한 줄의 시작과 끝을 알린며,
* <td>..</td>은 한 칸의 시작과 끝을 알린다.
[/CODE]
2. table, tr, td의 공통 속성.
① width = px :: 넓이
② height = px :: 높이
③ bgcolor = RGB code or color name :: 바탕색
④ background = 주소 :: 배경이미지
⑤ align = left, center, right :: 수평정렬
⑥ valign = top, middle, bottom :: 수직정렬
3. table만의 속성.
① border = px :: 테이블 경계선 두께
② bordercolor = RGB code or color name :: 테이블 경계선 색.
③ bordercolorlight = RGB code or color name :: 테이블 경계선 색의 밝은 부분.
④ bordercolordark = RGB code or color name :: 테이블 경계선 색의 어두운 부분.
* bordercolorlight, bordercolordark 두 속성 적용시 bordercolor는 무시당한다.
⑤ cellpadding = px :: 셀 내부에서의 내용물이 경계선으로부터 떨어져야 할 여백.
⑥ cellspacing = px :: 각 셀들간에 떨어져야 할 여백.
4. td만의 속성.
① colspan = 합칠 칸의 개수 :: 옆으로 합치기 ( 옆의 열과 .. )
② rowspan = 합칠 칸의 개수 :: 아래로 합치기 ( 아래의 행과.. )
2004/12/13 21:22
C 프로그래밍 시작하려고 하는데 어떤 책이 좋을까요?ㅎㅎ
2004/12/14 11:35