본문 바로가기

Study55

Scanf의 형식지정자에 대하여 scanf는 c언어를 배울 때 처음 배우는 입력 함수이다. 정수 하나를 입력받는다고 하자. int i; scanf("%d",&i); 위와 같을 꼴로 int 정수 하나를 입력받을 것이다. scanf에서 우리가 첫 파라메터로 입력한 값을 형식지정자라고 한다. 이 값을 잘 조정함으로 우리는 다양한 입력을 여러가지 방법으로 받을 수 있다. 예를들어 123456789 라는 입력이 있을 때 이 입력을 9자리의 정수가 아닌 3자리의 정수 3개로 받을 수 있다. #include int main(void){ int a,b,c; scanf("%3d%3d%3d",&a,&b,&c); printf("a:%d, b: %d, c: %d\n",a,b,c); } 이때 출력은 다음과 같다. > a:123, b: 456, c: 789 형.. 2021. 2. 26.
.py를 .ipynb으로, 또 그 반대로 ipynb-py-convert 를 사용하여 파이썬 스크립트를 노트북파일로 변환하고, 노트북 파일도 스크립트로 변환이 가능하다. 설치법 pip install ipynb-py-convert 사용법 - abc.py를 def.ipynb로 바꿀때 ipynb-py-convert abc.py def.ipynb - abc.ipynb를 def.py로 바꿀때 ipynb-py-convert abc.ipynb def.py 위처럼 입력하면 끝이다. 스크립트를 노트북으로 바꿀때 셀구분이 하고싶을것이다. # %% 로 셀구분이 가능하며, ''' 을 사용한 주석으로 마크다운을 적용할 수 있다. https://pypi.org/project/ipynb-py-convert/ 2020. 10. 17.
Python에서 c,c++ 코드 사용하기 python의 ctypes를 이용하면 c혹은 c++에서 작성한 코드를 사용가능하다. a.cpp 에서 작성한 단순 곱셈함수 mul을 python에서 사용해보자. //a.cpp #include extern "C"{ int mul(int a,int b){ return a*b; } } 위 파일을 공유라이브러리로 만들어 주어야한다. g++로 a.cpp를 liba.so로 만들어주자. g++ -shared -fPIC a.cpp -o liba.so liba.so 파일이 생성되었다. a.py에서 liba.so의 mul을 사용해보자. #a.py import ctypes a = ctypes.CDLL("./liba.so") mul = a.mul print(mul(13,43)) a.py를 실행시키면 559가 출력된다. 2020. 10. 4.
MFC frame 초기 스타일 지정하기 frame의 PreCreateWindow에서 스타일을 지정해주면 된다. BOOL CFrameWnd::PreCreateWindow(CREATESTRUCT& cs) 가 본체이며, 만약 CFrameWnd 를 상속하여 만든 frame이 CMainFrame라면 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 에서 cs.style을 건드려 주어야 한다. 만약, 프레임을 마우스로 크기조절되는것을 막고싶다면, WS_THICKFRAME 을 제거해주어야한다. 제거는 not, and연산으로 해준다. cs.style &= ~(WS_THICKFRAME); 로 할 수 있다. 만약 창에서 최소화, 최대화 박스도 같이 없애버리고싶다면 다음과같이 해주면 된다. cs.style &= ~(WS_.. 2019. 4. 21.
MFC 꺾은선 그리기 CArray 와 CDC::PolyLine을 사용하면 된다. CArray points; CArray 의 Add() 를 사용해서 더해주고 CArray 의 GetData()로 CArray를 배열로 가져올 수 있다. BOOL CDC::Polyline(LPPOINT lpPoints,int nCount); 에 점들과 배열 길이에 관한 정보를 넘겨주면 되는데, 다음과 같이 쓸 수 있다. // onPaint에서 CPaintDC dc(this); dc.PolyLine(points.GetData() , points.GetSize()); std::vector를 사용할 수도 있다. std::vector vPoints; // onPaint에서 CPaintDC dc(this); dc.PolyLine(&vPoints[0] , vP.. 2019. 4. 21.