본문 바로가기

전체 글232

[CPP 모듈 고민]SEARCH에서 출력 순서 가장 나중에 넣은걸 가장 뒤로 하고 싶은데 이렇게 해도 되는걸까?굳이 싶긴하다.이전코드print_row_sep(); int size(idx); if (is_full== true) size=8; for (int i=0;i < size;i++) { print_each_col(i); if (idx -size + i < 0) print_each_col(idx -size + i + 8); else print_each_col(idx -size + i); print_row_sep(); }수정코드print_row_sep(); int size(idx); if (is_full== true) size=8; for (int i=0;i < size;i++) { print_each_col(i); print_row_sep(); }.. 2023. 1. 15.
[Cpp 개념공부]__how to user input the noprintable ascii on cin (어떻게 cin에서 none printable를 받을 수 있을까)__ 과제 중 none printable 한 것들을 입력 받는 경우에 대한 예외를 처리하려고 하는데 그것을 입력 받는 방법을 몰라서 테스트를 못하고 있다.추가적으로 널을 입력 받는 방법도 궁금하다.일단 내가 해결 한 방법은 ctrl +v 를 입력하면 신기하게도 22 이렇게 나오고 ctrl m을 하면 원하는 0 값이 나온다.테스트 코드#include int main() { std::string command; while (true) { std::string command; getline(std::cin,command); std::cout 2023. 1. 13.
[Cpp 개념공부]new 와 malloc의 차이점 자유도가 높다.위험하다. 과거 컴퓨터는 용량이 작아서 괜찮.malloc은 과거를 기준으로 만들어져 있어서지금은 패러다임이 바뀜이때 운영체제가 보호모드로 바꼈다.보호모드의 큰 특징이 커널모드와 유저모드의 분리로 어플리케이션 오류가 운영체제 자체를 망치지 않는다.큰 변화가 가상메모리 인데 과거에는 없는 공간에서 새로운 공간을 만드는 것 까진 아니더라도 부족한 공간에서 원하는 크기만큼 그 공간을 확보하기 위해서 연산을 많이 해서 거의 새로운 공간을 창출하는 느낌이었다면 지금은 이미 있는 공간에 메모리를 사용하겠다고 표시만 해주는 느낌이다. malloc이 실패한다는건 이젠 운영체제가 메모리 관리를 하기 때문에 거의 없는데 근데 동적할당할 때 막 2기가를 할당하려고 하면 실패한다.거의 항상 성공해서 malloc함.. 2023. 1. 13.
[Cpp 개념공부]__cin에서 endof 를 쏴줄 때 cin이 다시 사용하지 못하는 이슈__ 나의 궁금증을 한줄로 요약하자면안녕하세요 혹시 cin을 입력 받을 때 유닉스의 경우 ctrl+d 윈도우의 경우 ctrl+z를 입력하면 endof를 입력이 되는걸로 알고 있는데 이렇게 입력을 받고나면은 다른 cin은 전부 실행이 되지 않고, 끝나게 됩니다. cin이 endof를 받게되면 endofbit를 초기화해서 stdin을 사용하지 못하게 하는 것 같은데, 이것을 혹시 되돌려서 다시 cin 즉 stdin을 받는 방법을 아실까 싶어서 댓글 남겨봅니다. 감사합니다! cin에서 endof 를 쏴줄 때 cin이 다시 사용하지 못하도록 변하는 것 같다.이 문제를 어떻게 해결 할 수 있을까?완전히 고장나는 것일까? try catch를 하는 것 말고 cin을 고치는 방법은 없는 걸까?window와 unix에서의 e.. 2023. 1. 13.
[Cpp 개념공부]cin대신 getline cin을 사용하면 공백과 개행을 기준으로 입력을 받으므로 getline함수를 이용해서 한줄을 통째로 받도록하자.cin과 getline을 동시에 사용할 때 생기는 이슈cin의 경우 입력을 “aaa\n”이렇게 넣어주더라도, aaa까지만 입력에 들어오고 뒤의 \n의 경우 남아있어서 getline함수가 그것을 버퍼에 가지고 있을 수 있습니다.getline사용법사용법 1#include int main() { string command; getline(std::cin,command); }다음과 같이 cin할 녀석과 입력을 받아서 저장할 인스턴스를 미리 지정해주면, 위 코드에서는 command string에 개행 기준으로 넣게 된다.이전에 string 사용법에서 잘 정리해줘서 그걸 보고 getline함수를 쓰면 된다.. 2023. 1. 13.
[Cpp 개념공부] **Meaning of position of const(**const위치에 따른 의미차이) 1. const 변수 const int n = 0; int const n = 0; n = 2; // Compile Error 위의 두 코드는 의미가 같다. 2. const 멤버 변수 클래스 내부에도 const키워드를 사용해서 초기화를 할 수 있는데 반드시 초기화 리스트를 사용해야만 한다. class Example { const int n; Example(void) : n(1){}// const int num = 1; }; class ERROR { const int N; Bar(void) { N = 1; // Compile Error } }; 위 와 같이 클래스에서 멤버변수를 const로 만들고 초기화 하고 싶다면 반드시 생성자 초기화 리스트를 써야하고 아래 클래스를 돌려보면 컴파일 에러가 발생하는 것을 .. 2023. 1. 13.
Netpractice를 3일만에 끝내보자. (6~10번 문제풀이)(3/3) 레벨 6 문제 간단 정답 해설 오히려 상당히 쉬운 문제입니다. 처음으로 인터넷이 등장하는데요, 인터넷은 비록 그림에서는 목적지가 하나로 보여도 전세계로 연결되는 공용 네트워크이기 때문에 왼쪽의 목적지에 default를 사용할 수 없고 반드시 지정을 해줘야 합니다. 그것만 안다면 5번과 비슷하게 어려운 점이 없습니다. 문제 풀이 우선 저희는 서브넷 마스크랑 인터넷이 가야하는 네트워크의 위치를 알아서 저곳을 먼저 채울 수 있죠. 다음으로 인터페이스의 IP만 채우면 되는데요 서브넷 마스크에 의해 R1의 인터페이스 IP는 70.49.180.129~ 70.49.180.254 가 가능하답니다~~ 저는 여기서 궁금증이 조금 생겼는데, 과연 라우터의 라우팅 태이블은 무엇을 가리기코 있는건지 살짝 이해가 안 갔었는데, .. 2023. 1. 11.
Netpractice를 3일만에 끝내보자.(문제풀이 및 개념공부 1~5번)(2/3) 시작 전 간단한 서브넷 마스킹 설명 간단하게 서브넷 마스크의 특징을 설명하겠습니다. 더 깊은 원리에 대해 공부하고 싶다면 제가 정리한 글과 구글의 다양한 글을 참고하세요! 간단 ip와 서브넷 마스크의 특징 같은 네트워크에 속한 ip의 서브넷 마스크는 같아야합니다. 같은 네트워크에 속한 ip는 같을 수 없습니다. 서브넷 마스크와 ip주소와의 AND연산을 해서 나온 결과값이 네트워크 주소입니다. 서브넷 마스크는 반드시 앞에서부터 1로 순서대로 채워져있습니다 255.0.255.0 —>이건 불가능하다는 의미입니다. 255.255.255.1 —>불가능 255.255.255.254—> 가능 255.255.128.0 —> 가능 서브넷 마스크로 ip주소를 나누게 되면 [ip] = [네트워크 주소 / 호스트 주소] 이렇.. 2023. 1. 11.
Netpractice를 3일만에 끝내보자. (시작 전 개념공부)(1/3) 참고 링크시간이 많다면 위의 글을 다 보시는 것을 추천합니다.서브넷 마스크와 서브넷팅 계산법우리가 흔히 사용하는 IP 주소 체계인 IPv4는 이론적으로 42억 개의 네트워크 장치에 IP Address를 부여할 수 있습니다. 언뜻 보면 많아 보이지만 컴퓨터뿐 아니라 스마트폰까지 대중화된 시대에 42억 개는 그리 많은 수가 아닙니다. 그런데 문제는 42억 개를 각 네트워크 영역마다 아무렇게 둘 수 없다는 점입니다. 극단적인 예시로 A 클래스를 보시면 이해하기 쉽습니다.http://korean-daeddo.blogspot.com/2016/01/blog-post_26.html공인 IP와 사설 IP... 다양한 IP 유형의 차이는?IP 주소는 인터넷 프로토콜 주소를 의미하며 숫자로 구성되어 인터넷에 연결된 장치를.. 2023. 1. 11.