전체 글 96

변환 랜덤 라이브러리

데이터 변환 라이브러리 함수 - atoi : 문자열을 정수(int)로 변환 - atof : 문자열을 실수(double)로 변환 - strtof : 실수 문자열을 float형 실수로 변환 - strtod : 실수 문자열을 double형 실수로 변환 예제) atoi("2020"); // int형 2020으로 리턴 atoi("2020.123"); // int형 2020까지만 리턴 atoi(".,2020"); // 0을 리턴 활용 예제) - 근무일 입력 시 급여 계산 #include #include #include #include int main() { char code[12] = "20080123-02"; char year[5]; // 연도 + 널문자 까지 해서 5로 지정 time_t timer; struct..

적 케릭터 닷지 회피 구현(Enemy Dodge System)

게임을 개발하던 중에 젤다의 전설 야생의 숨결에서 보코블린(적 케릭터)가 공격을 회피(닷지) 하는 것이 생각나서 구현해보았다. [SerializeField] private float dodgeChance = 0.3f; // 닷지 확률(0 ~ 1f 사이 값) [SerializeField] private float dodgeAngle = 30; // 반각 30도, 총 60도 각도 [SerializeField] private float dodgeDistance = 5f; // 닷지할 포인트 거리 [SerializeField] private float counterattackChance = 0.3f; // 닷지 후 반격 찬스 // 플레이어가 공격했을 때 Action을 작동 private void Awake() ..

시간 관련 라이브러리

종류 헤더 파일: time.h 1. 시간 계산 time: 현재 시간 clock: 시간 계산 함수 difftime: 두 시간 사이의 차이 계산 mktime: struct tm 구조체를 통해 epoch time을 구하는 함수 2. 시간 변환 asctime: 시간구조체를 문자로 변환 ctime: 시간변수를 문자로 변환 gmtime: UTC 시간으로 변환 localtime: 지역 시간으로 변환 strftime: 날짜와 시간으로 이루어진 문자열을 struct tm으로 변환 라이브러리 변수 stize_t: 부호 없는 정수형 clock_t: 프로세서 시간 저장 변수 타입 time_t: 캘린더 시간 저장 변수 타입 struct tm: 날짜, 시간 처리 구조체 관련 용어 Epock Time - 1970년 01월 01일 ..

파일 입출력 라이브러리(Basic Step)

파일 입출력 입력과 출력의 대상이 파일인 경우 입출력 대상 텍스트 파일, 이진 파일 입출력 과정 * 스트림을 생성함으로 파일 구조체에 대한 접근이 가능해짐. 파일 열기 파일 입출력을 수행하려면 먼저 fopen 함수를 이용하여 파일을 열어야 함 fopen 함수의 원형: FILE* fopen(const char* filename, const char* mode); filename : 파일 이름 mode : 파일 열기 모드 리턴 값 : 생성된 파일 스트림의 파일 포인터를 리턴 / 파일을 열 수 없으면 Null 포인터를 리턴 Default mode는 Text file. 입출력 함수 예제_1 #include int main(void) { FILE* fp; char ch; if (fp = fopen("./main...

도서관리 시스템 고도화(동적메모리)

고도화 개요 - 베스트셀러 Top3 도서의 제목을 출력하는 기능 - 도서 데이터를 동적할당을 이용하여 저장 프로그램 구현 시 처리 대상 자료 - 도서명 - 가격 - 코드 - 저자 - 판매수량 - 베스트셀러 기능 정의 - 베스트셀러 Top3 출력 - 동적메모리를 할당하여 저장(필요한 만큼 데이터를 사용) - 연속 입력 기능, 출력 메뉴 연속 사용 기능 고도화 방법 베스트셀러 출력 메모리 공간 활용 연속 입·출력 - qsort함수를 이용한 판매수량 정렬 - 동적 메모리 할당을 이용한 요구 메모리축속 - 무한 반복 루프로 구현 자료 typedef struct book { char bookTitle[50]; char bookAuthor[20]; int boolPrice; int bookSale; char boo..

함수 포인터(Function Pointer)

함수 포인터란? - 함수의 주소를 저장하는 변수 필요성 프로그램 코드 간결화 배열로 처리함으로써 중복 코드 제거 가능 상황에 따른 함수 호출 함수를 데이터 형태로 처리 → 함수의 보관과 전달이 용이 형식 - 리턴 타입 (*함수 포인터명)(매개변수 리스트); 1. 리턴과 매개변수가 없는 함수에 대한 함수 포인터 #include void hello() { printf("Hello, world!\n"); } void good() { printf("Good morning!\n"); } int main() { void (*fp)(); // 함수 포인터 선언(리턴타입void, 매개변수 없음) fp = hello; // hello 함수 시작 주소를 대입 fp(); // 함수 포인터로 호출 fp = good; // g..

동적 메모리

" 10칸의 전철이 있다. 평균 승객의 수를 고려한다면 4칸 정도만으로도 충분히 승객을 태울 수 있다. 만약 승객의 수에 따라서 전철 칸 수를 늘리고 줄일 수 있다면 효율적인 운행이 가능해진다. 프로그램 메모리에도 필요에 따른 크기 할당이 가능한 것이 바로 동적 메모리 이다. " 동적 메모리 이해 특 징 정적 메모리 동적 메모리 메모리 할당 컴파일 단계에 이루어짐 실행 시간에 이루어짐 메모리 해제 자동으로 해제 명시적으로 해제 필요 사용 범위 지역 변수는 선언된 블록 내, 전역 변수는 프로그램 전체에서 사용할 수 있음 프로그래머가 원하는 동안 만큼 사용할 수 있음 메모리 관리 컴파일러의 책임 프로그래머의 책임 개요 1. 데이터의 갯수를 미리 알 수 없을 때 사용 2. 처리 대상 데이터가 유동적일 때, 특..

수학 관련 라이브러리

어려운 계산식을 직접 만들지 않고, 만들어놓은 라이브러리를 사용할 수 있다. 종류 1. 삼각함수 cos cosine 값 연산 sin sine 값 연산 tan tangent 값 연산 acos arc conie 값 연산 asin arc sine 값 연산 atan arc tangent 값 연산 atan2 매개변수가 2개인 arc tangetn 값 연산 2. 지수, 로그 함수 exp 지수 연산 log 자연로그 연산 log10 상용로그 연산 3. 제곱함수 pow 거듭제곱 연산 sqrt 거듭제곱근 연산 4. 반올림함수 ceil 올림연산 round 반올림 연산 floor 내림연산 5. 최대값, 최소값 함수 fmax 매개변수 중 최대값 반환 fmin 매개변수 중 최소값 반환 6. 절대값 함수 abs 정수의 절대값 연산..

도서관리 시스템 구현

도서관리 프로그램이란? - 도서명과 저자 등의 정보를 저장하고 저장된 도서 목록 전체를 출력하거나 찾고자 하는 도서를 제목과 저자 정보로 검색하여 결과를 출력하는 프로그램을 개발 프로그램 구현 시 처리 대상 자료 { 도서명, 가격, 저자, 판매수량 } 기능 정의 항 목 내 용 메뉴 도서 입력, 도서 출력, 도서 검색, 종료 기능 도서 입력, 출력, 제목 검색, 저자 검색 요구사항 - 메뉴 방식으로 작업 선택 - 종료 메뉴 추가 - 책 제목 최대 50글자까지 입력 가능 - 저자명 최대 20글자까지 입력 가능 - 검색: 제목 검색, 저자 검색 - 최대 100권 관리 기능 자료구조 정의 자 료 도서명 char bookTitle 저자 char bookAuthor 가격 int bookPrice 판매수량 int b..