일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정처기 독학
- SSG
- MyTread
- C
- 도움말
- 정보처리기사
- 김성엽
- do it c
- 미가공
- MyThread
- mfc 실습
- 유료강좌
- 충무창업큐브
- MFC 예제
- C언어
- 별찍기
- tips강좌
- mysql
- ListBox
- 실습
- linux
- 핵심 요약
- C++
- 포트폴리오
- Time
- win32
- 별찍기 기초
- MFC
- Tipsware
- 마이크로소프트
- Today
- Total
목록C,C++/개념 실습 프로그래밍 (50)
History
버그의 종류는 크게 2가지로 나뉜다. 1. 문법상 코드를 잘못 작성해 발생하는 문법오류. 2. 문법상 문제는 없지만 예상치 못한 결과가 발생하는 논리적 오류. 문법 오류는 IDE의 인텔리센스가 경고를 띄워주기 때문에 대처가 가능하지만, 논리적 오류는 코드상 문제가 아니라 들어온 데이터, 수식 상 문제 등으로 발생하는 것이기 때문에 어느 위치에서 오류가 발생했는지 알기 쉽지 않다. #include #pragma warning(disable:4996) int Func(int a_value) { int temp=5; temp /= a_value; return temp; } int main() { int ans=Func(0); } 간단히 위와 같은 코드로 예시를 들겠다. 위 코드에서 인자값으로 0을 줬고 인자값..
c언어에서는 올림(ceil)과 내림(floor) 함수는 지원하지만 반올림 함수는 따로 지원하지 않는다. ceil과 floor함수는 math.h를 include 해줘야 사용할 수 있는 라이브러리 함수이다. float data1=1.75452; float data2=0.1353; 위처럼 float형 data1과 data2라는 변수를 선언하고 초기화한다. data1을 기준으로 ceil을 사용하면 2.000000이 나올 것이고 floor을 하면 1.000000이 나온다. 난 floor을 활용하여 반올림을 간단하게 구현해보도록 하겠다. #include #include #pragma warning(disable:4996) int main() { float data1=1.75452; float data2=0.1353..
STL의 개요 STL은 표준 템플릿 라이브러리(Standard Template Library)는 템플릿으로 작성된 많은 제네릭 클래스와 함수 라이브러리이다. STL의 종류 컨테이너-템플릿 클래스 순차 컨테이너=> 백터(vector), 리스트(list) 컨테이너 어댑터=> 스텍(stack) 큐(queue) 연관 컨테이너=> 맵(map), 셋(set) iterator- 컨테이너 원소에 대한 포인터 iterator는 반복자라고 불린다. -> 컨테이너 원소에 대한 포인터이다. 즉 iterator은 STL의 원소에 접근할 수 있다. 알고리즘- 템플릿 함수 컨테이너의 원소에 대한 복사, 검색, 삭제, 정렬의 기능을 구현한 함수들 STL 컨테이너의 종류 vector 가변 크기의 배열을 일반화한 클래스 list 빠른 ..
저번차시에 이어서 템플릿에 대한 글을 작성해 보겠다. 저번엔 템플릿을 활용한 Swap기능을 하는 제네릭 함수를 만들었다. 이번에는 배열에 저장된 정수를 더하는 제네릭 함수를 실습해 본다. #include using namespace std; //타입 T의 배열 arr에서 n개의 원소를 합한 결과 //리턴 타입이 모두 T임 template T Add(T *arr,int n) { T sum=0; for(int i=0; i
이번 차시 게시글에서는 템플릿과 STL에 대해서 공부한 내용을 간단히 써보려고 한다. 1. 템플릿이란? 템플릿이란 본떠서 찍어내기 위해 만들어진 틀이라는 뜻을 가지고 있다. 이렇게 코드를 찍어내듯이 생산할 수 있도록 일반화(generic) 시키는 도구가 템플릿이다. 2. 템플릿은 어떨때 사용하나? 템플릿은 함수의 중복이 있을 때 사용하면 용이하다. 함수의 이름은 같지만 인자값이 달라도 실행은 된다. 이것이 오버로딩이라고 한다. 그러나 오버로딩을 쓰는 이유는 같은 기능을 하지만 자료형이 다를 때 많이 쓰이는 개념이기도 하다. 그래서 개발자는 함수의 이름의 중복을 생각하지 않고 편하게 쓸 수 있지만, 이렇게 프로그래밍을 진행하게 된다면 코드의 줄 수는 어마무시하게 늘어날 것이다. 템플릿은 이런 중복 함수를 ..
이번 차시 실습에서는 텍스트 파일에 저장된 특정 문자를 찾아서 원하는 단어로 바꾸는 실습을 진행한다. 파일에 기록된 내용을 변경하려면 파일 입출력에서의 옵션을 변경해야 한다. w+: 쓰기 우선 읽기모드 r+: 읽기 우선 쓰기모드 a+: 이어쓰기 우선 읽기 모드 1. 옵션 읽기와 쓰기 모두 작업하면서 원하는 위치에 데이터를 쓰더라도 다른 데이터에 영향을 미치지 않게 하려면 r+ 옵션을 사용해야한다. 만약 지금 사용하는 파일이 텍스트 파일이라는 것을 강조하고 싶으면 r+t라고 사용하면 된다. 2. 단어 찾기 원하는 단어를 찾기 위해서는 strstr 함수를 사용하여 특정 단어를 찾는다. strstr 단어는 string.h 헤더파일에 있기 때문에 include를 해줘야한다. strstr 함수는 추후에 따로 정리..
이번 차시에는 fgets 함수에 대해서 정리를 해보겠다. 1. fgets 함수 fgets 함수는 FILE 구조체를 사용하여 파일 입출력 스트림에서 문자열을 가져오는 함수이다. 원형은 아래와 같다. C++ char *__cdecl fgets(char *_Buffer, int _MaxCount, FILE *_Stream) 첫 번째 매개변수 Buffer는 파일에서 읽은 문자열을 저장할 메모리의 주소를 넘겨주면 된다. 두 번째 매개변수 MaxCount는 Buffer 즉 배열의 크기를 적으면 된다. 세 번째 매개변수 Stream은 파일 포인터를 적으면 된다. 파일 포인터는 FILE 구조체를 사용해서 텍스트 파일을 관리하는 포인터를 말한다. fgets 함수는 보통 개행(\n) 문자를 만날 때까지 문자열을 읽는 것이..
이번 차시에서는 data.txt에 있는 텍스트를 한 줄씩 읽어와서 출력하는 프로그램을 실습하겠다. 파일을 여는 함수는 fopen_s 함수를 사용하고 한 줄씩 텍스트를 읽는 함수는 fgets함수를 사용하겠다. 파일의 위치는 현재 작업경로에 넣었다. fgets 함수는 파일에서 더 이상 읽을 텍스트가 없는 경우에 NULL을 반환한다. 그래서 반복문으로 프로그램을 구성하면 텍스트 파일을 한 줄씩 읽다가 텍스트를 다 읽으면 종료하는 코드를 만들 수 있다. 완성된 코드는 아래와 같다. #include #pragma warning(disable:4996) #define MAX_LENGTH128 int main() { int line_count=0; //라인 줄 수 char buf[MAX_LENGTH]; //문자열을 ..