C언어 공부 34

C언어 rand와 srand 사용법

찾아서 보는데 글을 너무 못써서 그냥 내가 쓴다. rand#include #include   둘 중 하나만 넣어서 사용하면 된다 그리고 rand() % 값 을 넣으면 0 ~ 자기가 넣은 값 까지의 숫자가 나온다. 그런데 같은 숫자만 나올 수 있어서 그것을 방지하기 위해 srand를 사용한다. 코드 예시int random = rand() % 5;이렇게 사용하면 된다.srand#include #include 둘 중 하나만 넣어서 사용하면 된다. srand는 시간을 활용해서 나오는거라 무작위로 나온다. rand보다 더 무작위성이 높다.코드 예시srand(time(0));int random = rand() % 5;이렇게 사용하면 랜덤으로 나온다.

C언어 공부 2025.03.22

C언어 공부 강의 완 앞으로의 계획

강의 완 영상은 액기스를 꾹꾹 담아서 하였기 때문에, 강의 수도 적고, 내용도 그렇게 많지 않았다. 그만큼 액기스를 모은 만큼 한 번만 봤다고 끝이 아니라, 내가 모르는 부분은 봐야하고, 꾸준하게 해야한다. 공부를 할때 중요한 것은 복습이라고 생각한다. 한 번 봤다고 다 외우고, 응용할 수 있다면 그정도로 머리가 좋다면 굳이 강의를 안찾아 봐도 수준급으로 잘 할것이다. 앞으로의 계획 내가 강의를 듣고, 연습프로그래밍을 하고, 혼자서 따로 무언가를 만들었을때 어떤것이 부족한지 안다. 그것을 위주로 다시 복습할 것이다. 1회차 회독, 2회차 내가 부족한 것에 대한 복습, 3회차 어려웠던 C++ 심화의 복습으로 진행할 것이다. 공부를 잘 했다는 것은, 다른 사람에게 설명할 수 있을 정도의 수준이라고 생각한다...

C언어 공부 2025.03.22

C++ 심화 - 9 람다 함수

람다 함수 변수형 함수(??) 라고 한다람다 함수를 사용하기 위해선 #include  을 사용해야한다 사용은 이렇게 한다.코드 예시#define _CRT_SECURE_NO_WARNINGS#include #include int main() {std::function foo = [=]() {printf("hi");};foo();return 0;} 그리고 int value라는 함수를 하나 만들자. 아마 그러면 value에 빨간줄이 들어올 것이다. #define _CRT_SECURE_NO_WARNINGS#include #include int main() {int value = 100;std::function foo = [=]() {printf("hi", value);};foo();return 0;}이것은 [ ]..

C언어 공부 2025.03.22

C++ 심화 - 8 파일 입출력2

fopen(...)fopen을 사용할 때에는 꼭 습관처럼 fclose(...)먼저 아래쪽에 만들어 두고 그 사이에 코딩을 하는 것이 가장 좋다. 이는 다른 프로그래밍에서도 마찬가지인데, 다른 프로그래밍 언어에서도 똗같이 파일을 열고 파일을 닫고 하기 때문이다. 코드로 보면 이렇다.코드 예시#define _CRT_SECURE_NO_WARNINGS#include int main() { FILE* infile = fopen("sample.txt", "r"); fclose(infile); return 0;}(이름을 sample 말고 다른 이름으로 만들어도 된다. .txt만 붙여주도록 하자.) fclose(...)fclose(...) 함수는 nullptr을 파라미터로 받았을 경우 런타임 오류가 발생하게 된다. ..

C언어 공부 2025.03.22

C++ 심화 - 7 파일 입출력

파일 입출력C++스타일의 파일보다는 C 스타일의 파일이 배우기 편하기 때문에 C 스타일로 파일 입출력을 한다. 파일의 포인터는 물리적 디스크의 접근하는 타입 구성요소에는 다음의 3가지가 있다.1. 파일의 시작 지점2. 파일의 종료 지점3. 현재 읽고 있는 위치 C 형식 file IO FILE* fopen(const char* filename, char* mode); filename: 대상 파일명 c 스타일 파일 이름mode: 파일을 여는 방법 w: 쓰기 (존재하지 않으면 새로 생성, 존재하면 다시 지우고 다시 생성) r: 읽기(존재하지 않으면 오류, 조재하면 처음부터 읽어나가기) a: 파일을 이어나가기(존재하지 않으면 새로 생성, 존재하면 파일의 마지막부터 쓰기) w+: 쓰기 또는 읽기(존재하지 않으면 ..

C언어 공부 2025.03.21

C++ 심화 - 6 기본 자료구조 / STL 기초 자료구조 활용

std::vectorstd::vector 는 vector 헤더파일에 작성되어있다.이 std::vector를 활용하게 되면 유동적인 배열을 편안하게 활용할 수 있다. std::vector는 윌가 일반적으로 배열을 사용하듯 사용할 수 있으며 std::vector는 iterator(순회자)를 통해각각의 원소를 순회할 수 있고 이 순회자를 이용해 algorithm에 작성되어 있는 sort(..)함수를 이용해 값을 정렬 할 수 있다. 선언은 이렇게 한다.코드 예시#define _CRT_SECURE_NO_WARNINGS#include #include int main() { std::vector myvec; return 0;} 전체적으로는 이렇게 사용한다.#define _CRT_SECURE_NO_WARNINGS#in..

C언어 공부 2025.03.20

C++ 심화 - 5 STL 핵심 / Generic 이라고 불릴 수 있는 개념

Standard Template Library 의 약자STL 을 사용하면 각종 자료형에 구애받지 않는 통합 라이브러리를 만들 수 있으며, C++ 의 STL은 다른 언어 Generic과는 다르게 굉장히 빠른 퍼포먼스를 약속한다. 선언은 template  이렇게 선언한다. 코드 예시#define _CRT_SECURE_NO_WARNINGS#include template class myclass {public: T value;};int main() { return 0;} 전체적인 코드로 보면 이렇다 #define _CRT_SECURE_NO_WARNINGS#include #include template class myclass {public: T value;};int main() { myclass* m = ne..

C언어 공부 2025.03.20

C++ 언어 심화 - 4 const / static / extern

constconst 는 상수라는 뜻 이다. 상수라는것은 프로그램이 시작되면서 끝날때 까지 절대 변하지 않는 값을 의미한다. 하지만 진정한 의미로서의 const 는 define 매크로이며, const 키워드를 이용해 만든 변수는 상수 이지만,'저장공간'을 갖고 있는 변수 이며 실질적으로 프로그램 내부에 박혀있는 값은 아니다. #define _CRT_SECURE_NO_WARNINGS#include #define myvalue 100int main() { int value = myvalue; printf("%d", value); return 0;} const는 원래 define에 있던 것이다. define에 인해서 100으로 치환되서 프로그램이 시작할때, 끝날때 절대로 변하지 않는다. const 사용 예시 코..

C언어 공부 2025.03.20

C++ 심화 - 3 문자열과 네임스페이스 그리고 레퍼런스 타입

기존에 문자열을 복사하려면 상당히 복잡하게 하였다.#define _CRT_SECURE_NO_WARNINGS#include #include int main() { char name[100]; strcpy(name, "hi"); printf("%s", name); return 0;}기존에 strcpy를 사용해 이런 형식으로 사용했을것이다. C++는 기존 문자열 사용의 불편한점을 해결한 클래스가 존재한다. 바로 std::string이다std::stringC++에서 문자열을 활용하기 위한 클래스형 문자열 타입 string헤더파일에 정의되어 있다.std::string에는 문자열을 이용한 여러가지 동작을 할 수 있도록 여러 멤버함수가 정의되어 있다. 또한 문자열의 포인터를 자동으로 관리해주기 때문에 하나하나 포인터..

C언어 공부 2025.03.20

C++ 심화 - 2 프로그램의 실행구조 / Bitwise / 순수 가상함수

Bitwise연산 비트를 기준으로 논리연산을 하는것을 비트 와이즈 연산이라고 한다. 비트 와이즈 and : & 연산자를 활용한다비트 와이즈 or : | 연산자를 활용한다왼쪽 쉬프트 : 오른쪽 쉬프트 : >> 연산자를 활용한다 코드 예시#include "mainHeader.h"int main() { int v1 = 1; int v2 = 2; int bitwise = v1 | v2; printf("%d", bitwise); return 0; } 2진수로 or의 값을 계산해서 값이 나온다. 출력은 3이 나온다. or은 둘 중 하나만 1이면 1이 된다. 다음은 & 연산이다코드 예시#include "mainHeader.h"int main() { int v1 = 1; int v2 = 2; int bitwise = ..

C언어 공부 2025.03.19