파일 입출력 기초 파일 입출력 입력과 출력의 대상이 파일인 경우 입출력 대상 텍스트 파일 : ASCII 코드 형태로 저장되는 파일 입력 : fgetc, fgets, fscanf 출력 : fputc, fputs, fprintf 닫기 : fclose 이진 파일 : 텍스트 파일이 아닌 모든 파일 입력 : fread 출력 : fwrite 핵심요약 파일 입출력 기초 파일 입출력 시 먼저 스트림을 생성해야 함 파일스트림 생성 시 읽기, 쓰기, 추가 등의 모드를 지정 파일을 열고 닫는 라이브러리 함수는 fopen, fclose임 파일 입출력 함수 파일로부터의 입력 함수로는 fgetc, fgets, fscanf, fread 등이 있음 파일에 출력하는 함수는 fputc, fputs, fprintf, fwrite 등이 있..
코드 분석 동적 할당 int main() { int sel, totalBCnt=0; BOOK *myBook; myBook = (BOOK *)calloc(2, sizeof(BOOK)); typedef struct book{ char bookTitle[50]; char bookAuthor[20]; int bookPrice; int bookSale; char bookCode[9]; }BOOK; BOOK *intBook(BOOK * mb, int * cn) { char yn; int number; int cnt; cnt = *cn; do{ while(1){ mb = (BOOK *)realloc(mb, sizeof(BOOK) * (cnt+2)); 중략 }while(yn == 'y'); *cn = cnt; retu..
함수 포인터 활용 qsort() 함수원형 void qsort (void * base, size_t num, size_t size, int (*compar)(const void *, const void *)); 헤더 stdlib.h 기능 테이블의 자료를 퀵 정렬로 내림이나 오름차순으로 정렬 매개변수 void * base → 테이블의 포인터 주소 size_t num → 테이블에 들어 있는 실제 데이터 개수 size_t size → 한 개 요소의 크기 int (*compar)(const void *, const void *) → 두 요소를 비교하기 위한 함수 포인터 반환값 void 구현 비교함수는 직접 구현해야 함 (배열의 자료형과 비교방식이 다르기 때문) 학습 정리 함수 포인터 이해 함수 포인터는 함수를 저..
동적 메모리 데이터의 개수를 미리 알 수 없을 때 사용 처리 대상 데이터가 유동적일 때, 특히 변동 폭이 큰 경우 라이브러리 함수 핵심요약 동적 메모리 이해 동적 할당은 실행 시에 할당되는 메모리임 동적 할당은 힙 영역에 할당함 동적 할당은 실행 시 크기가 정해지는 데이터 처리에 효과적임 동적 할당된 공간은 프로그래머가 해제해야 함 동적 메모리 활용 malloc, calloc은 동적으로 메모리를 할당하는 라이브러리 함수임 calloc은 동적 할당 후 0으로 초기화 free는 동적 할당된 메모리를 해제함 realloc은 동적 메모리의 크기를 변경하여 할당하는 것이 가능함
고도화 개요 - 도서를 키워드(제목, 저자)로 검색하여 결과를 출력하는 프로그램을 개발 - 코드(코드체계: 출판연도-시리얼넘버(XXXX-XXX) 데이터에서 출판연도별 책 목록 출력 기능 - 처리 대상 자료 : 도서명, 저자, 가격, 판매수량, 코드 자료구조 코드분석 : 선언부 코드분석 : 코드입력 검증 코드분석 : 연도별 출력 코드분석 : 연도별 키워드 검색 핵심요약 프로그램 설계 - 프로그램 개발 시 작업 목표에 맞게 사용할 라이브러리 함수와 자료구조를 결정해야 함 코드 분석 - 토큰을 이용하여 문자열을 분리할 수 있는 함수 : strtok - 특정 문자로 이루어진 문자열인지 검사하는 것이 가능한 함수 : strcspn - 키워드 검색에 유용한 함수 : strst
비교함수 memcmp : 메모리 블록을 비교 strcmp : 문자열을 비교 strncmp : 문자열 개수를 지정하여 비교 검색함수 memchr : 메모리 블록에서 문자열 검색 strchr : 문자열에서 찾는 문자의 첫 번째 위치 strrchr : 문자열의 마지막에서부터 문자 위치 검색 strspn : 문자열에서 특정 문자로 구성된 문자열의 길이 strspn : 문자열에서 특정 문자로 구성된 문자열의 길이 i>strcspn : 문자열에서 특정 문자로 구성에 포함되지 않는 문자열의 길이 strstr : 부분 문자열 위치 strtok : 토큰으로 문자열 분리 라이브러리 함수 이해 - 문자열 처리 관련 함수는 string.h를 include 함 - 문자열 비교함수 : memcmp, strcmp, strncmp ..