본문 바로가기

Language_78

[C++] STL 프로그래밍 _ 컨테이너 [Hash Map] 컨테이너의 종류- 시퀀스 컨테이너(Sequence Container) : 순서 있게 자료를 보관- 연관 컨테이너(Associative Container) : Key값과 짝지어 자료를 보관 (자료를 넣고, 빼고, 찾을 때는 key값이 필요) Sequence Container- 많지 않은 자료를 보관할때 사용- 검색 속도가 중요한 경우 사용 Sequence Container의 종류- vector- list- deque Associative Container- 대량의 자료를 저장할때 사용- 빠르게 검색을 하기 위해 사용 Associative Container의 종류- map- set- hash_map- hash_set- multi_map- multi_set- hash_multimap- ha.. 2019. 9. 16.
[java] JNetPcap 설치하기 #설정까지 [JNetPcap] 우선 윈도우에서 JNetPcap을 사용하려면 WinPcap이 설치되어 있어야한다.- WinPcap Installation Link 또한 JNetPcap을 사용하기 위해서 3가지의 zip 파일이 필요하다. (아래 링크는 1.4 버전)- JNetPcap Download Package 64bit- JNetPcap Download Package 32bit- JNetPcap Source File- JNetPcap JavaDoc# Package는 윈도운 운영체제에 맞게 다운받아 주세요. ##이클립스에 라이브러리 추가하는방법## 1. JNetPcap Download Package 안에 있는 jnetpcap.dll 과 jentpcap-pcap100.dll을 C:/Windows/System32 안에 .. 2019. 5. 28.
[java] Scanner를 이용하여 char 입력하기 [자바 char형 입력] 자바 Scanner는 문자를 입력받는 기능이 없다.즉, Scanner.next()로 문자열을 입력받은 다음, String.charAt(0)으로 첫번째 문자를 꺼내오면 된다. (1)String s = scanner.next(); char c = s.charAt(0);(2)char c = scanner.next().charAt(0); 위의 두가지 방법을 통해서 char형인 c에 문자를 입력할수 있다. 2019. 3. 24.
[C언어] scanf()함수에서 &(ampersand)를 쓰는 이유 [&(ampersand)에 대하여] c언어를 시작하면 printf에서는 &를 안썼는데, scanf에서는 &를 쓸때가 있고, 안쓸때가 있다.&의 역할은 무엇이며, &는 언제 쓰는 것일까. &(ampersand)의 역할- &(ampersand(앰퍼샌드))는 해당 변수의 주소를 가리키는 역할을 한다.- &를 이해할려면 주소에 대한 개념을 알아야 한다.주소 값000 32001 20 2019. 1. 21.
[python] turtle 모듈 정리 [turtle] turtle 모듈- turtle 모듈은 파이썬에서 기본적으로 제공하는 기본 모듈로 코드에 따라 그림을 그려주는 모듈이다.- 즉, 기본적으로 제공하기 때문에 별도의 설치과정 없이 사용이 가능하다. turtle 사용 방법- 맨 윗부분에 import turtle을 입력해 준다. import turtle turtle 펜 모양 변경- 기본 모양 : 'classic' - 삼각형 모양 : 'triangle'- 원 모양 : 'circle'- 거북이 모양 : 'turtle' turtle.shape('classic') turtle.shape('triangle') turtle.shape('circle') turtle.shape('turtle') turtle 펜 이동하기(여기서 방향은 화살표 방향(거북이 머리.. 2019. 1. 15.
[c언어] memset 함수에 대하여 [memset] memset 함수- malloc()이나, calloc()에서 할당 받은 메모리를 특정 값으로 초기화 하는 함수.- 보통 어떤 작업을 하기 전에 NULL로 초기화 할 때 많이 사용된다.- [malloc, calloc함수에 대한 글]- calloc은 malloc과 memset(void *ptr, 0, size_t size)의 기능이 합쳐진것이다. (0으로 초기화) memset 함수 형태- void *memset(void *ptr, int value, size_t size);- ptr : 메모리의 크기를 변경할 포인터- value : 초기화 값- size : 초기화 크기 memset 함수 헤더- string.h에도 있고, memory.h에도 함수가 있다. (즉, 둘 중에 하나만 써도 되며, 둘.. 2018. 11. 24.
[python] PyCharm 모듈 설치방법 [PyCharm 모듈 설치] 1. FIle의 Settings에 들어간다. 2. Project: python에 있는 Project Interperter에 들어간뒤 + 버튼을 누른다. 3. 원하는 모듈을 검색한뒤 Install Package를 누른다. 4. 모듈을 사용하면 된다. 2018. 11. 3.
[python] pwntools 모듈 정리 [pwntools] pwntools 설치- cmd[관리자 권한] 에서 pip install pwntools라고 입력해서 설치를 하면 된다.- 만약 설치가 안된다면 pip 환경변수 설정이 안되있는 것이므로 환경변수를 설정하자. [python]환경변수 설정- 리눅스에서 설치하는 것이라면 sudo apt-get install libcapstone-dev을 해줘야 disasm에러가 발생하지 않는다. pwntools 설치 확인- cmd에서 pip list를 하면 설치되어 있는 모듈을 확인 할 수 있다.- 리눅스라면 pip list말고도 python -c 'from pwn import *'를 통해 설치가 제대로 됬는지 확인이 가능하다. pwntools 사용 방법- 맨 윗부분에 from pwn import * 를 입.. 2018. 11. 3.
[c언어] ctype.h 함수 목록 [#include] #include 를 했을때 사용가능한 함수 목록이다.c 문자 분류로써 문자들에 관련된 함수들이 들어있다. #문자 검사 함수# int isalnum(int c) _ alphabet + number _ c가 알파벳 또는 숫자이면 0이 아닌 값을 반환 int isalpha(int c) _ alphabet _ c가 알파벳이면 0이 아닌 값을 반환 int iscntrl(int c) _ control _ c가 제어 문자이면 0이 아닌 값을 반환 int isdigit(int c) _ c가 숫자이면 0이 아닌값을 반환 int isgraph(int c) _ c가 그래픽 문자이면 0이 아닌 값을 반환 int islower(int c) _ lower _ c가 소문자이면 0이 아닌 값을 반환 int isp.. 2018. 10. 31.
[c언어] scanf와 scanf_s의 차이 [scanf와 scanf_s의 차이] 기존에 사용하던 scanf함수는 지정된 버퍼의 크기보다 더 많은 양의 문자를 넣을수 있기 때문에 버퍼오버플로우에 대해서 많이 취약했다.이러한 부분을 보완하고자 만든 함수가 scanf_s이다. _ 즉, 보안을 위해서 보완한 함수이다. scanf와 scanf_s의 사용법은 거의 똑같지만, 문자와, 문자열을 입력받을 경우에 인자값으로 하나를 더 입력해 줘야한다. #include int main() { char arr[20]; scanf("%s",arr); } - scanf 함수는 arr 크기가 20일때 arr에 20이상의 문자를 넣을수 있다는 취약점(버퍼오버플로우)이 있었다. #include int main() { char arr[20]; scanf_s("%s",arr,s.. 2018. 10. 10.
[c언어] Visual Studio 콘솔창 유지 [visual stdio 콘솔창 유지] 첫번째 방법 _ 하위 시스템 변경 - 프로젝트명 우클릭후 속성에 들어간다. - 링커 _ 시스템에서 하위 시스템을 콘솔로 변경해주고 확인을 눌러준다. 두번째 방법 _ system("PAUSE"); 사용하기- 코드에 system("PAUSE");를 넣어준다. _ 보통 return 0;위에 쓴다. 2018. 10. 6.
[c언어] Visual Studio 2017 설치하기 [Visual Studio 사용법] *0 코드로 인해 종료되었습니다 2018. 10. 5.
[c언어] c언어란? [c언어란?] c언어 : 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 새로 개발된 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어. 데니스 리치가 "B"언어를 개선하여 c언어가 탄생했다. 유닉스 바탕의 프로그램은 모두 c언어로 작성되었고, 수많은 운영 체제의 커널 또한 c로 만들어졌다. 오늘날 많이 쓰이는 c++은 c에서 객체 지향 언어로 발전된 것이다. 특징- 이식성이 뛰어나다. _다른 프로그램 언어보다 높은 호환성을 가지고 있고, c언어의 표준함수만 작성된 프로그램은 어떤 기종의 컴퓨터에서도 정상적으로 컴파일이 되고 실행될 수 있다.- 다양성을 가진다. _c언어는 과학 계산용 프로그램뿐만 아니라 FA(공장 자동화), OA(사무 자동화), GUI(Graphic User Int.. 2018. 10. 5.
[c언어] scanf 오류 해결 방법 [scanf 오류 해결] Visual Studio 2013 버전 이상부터 scanf를 사용하면 아래와 같은 에러가 나오면서 컴파일이 안된다.. 에러 메시지를 약간 해석하면 이 함수(scanf)는 취약하다. 대신해서 scanf_s를 사용해라 또는 _CRT_SECURE_NO_WARNINGS를 사용해라 라고 해석할수 있다. [해결방법] _ 아래의 3가지 방법중 하나 사용1. SDL 검사 아니요로 변경 - 프로젝트 명을 우클릭한후 속성 클릭 - C/C++에서 '일반'에 들어가면 SDL 검사가 있다. 아니요로 변경 2. 전처리기 정의 변경 - 프로젝트 명을 우클릭한후 속성 클릭 - C/C++에서 '전처리기'에 들어가면 전처리기 정의가 있다. 뒤에 _CRT_SECURE_NO_WARNINGS; 를 붙여넣어준다. 3... 2018. 10. 2.
[알고리즘] 유클리드 호제법 #c언어 [유클리드 호제법] 유클리드 호제법 : 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나.- 명시적으로 기술된 가장 오래된 알고리즘으로 알려져있다.- 기원전 300년경에 쓰인 유클리드의 제 7권, 명제 1부터 3까지에 해당 호제법 : 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘 알고리즘- 2개의 자연수 a, b에 대해서 a를 b로 나눈 나머지를 r이라 하자 (단, a > b)- a와 b의 최대 공약수는 b와 r의 최대공약수와 같다.- 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복- 이때 나머지가 0이 된다면 나누는 수가 a와 b의 최대공약수이다. [알고리즘]- 입력으로 두 수 m, n(m>n)을 입력받는다... 2018. 9. 26.