본문 바로가기

Anaconda && Visual Studio로 Tensorflow &&Tensorflow-GPU 설치 Tensorflow-GPU를 위한 수많은 가이드들이 있는데 나는 IDE에서 모든 것을 해결하는 환경을 구축하였다. 쉽게 말해서, 이 글대로 따라하면 CPU사용 GPU사용과 같이 가상 환경 전환을 할 때에, 귀찮게 터미널을 열 필요없이 그냥 클릭 한 번으로 환경을 바꿀수 있다!! 나는 데스크탑으로 게임도 하고 싶고, 오피스 프로그램도 자주 쓰기에 리눅스가 아닌 윈도우에 설치하였다.(듀얼 부팅이라는 방법이 있긴 하지만 상당히 귀찮은 것이 사실이다.) 텐서플로우 예제 코드를 GPU로 돌리기 위해서 설치해야 할 항목들을 아래와 같다. (다시 말하지만 윈도우 10가정 하에) 1. Visual Studio C++ 컴파일러 (나는 visual studio 2017이 깔려 있어서 이미 해결된 상태)2. 파이썬 (버전 ..
Windows API - ShellExecute에 대해서 선량한(?) 나는 예제를 돌리고 있었다. (윈도우 10 && Visual studio 2017) 1ShellExecute(GetDesktopWindow(), "open", ptr_snode->song->path, NULL, NULL, SW_SHOW);cs 이 예제는 내 컴퓨터에서 mp3파일의 절대 경로를 알려주면 찾아서 틀어주는 그런 코드였는데... "open", ptr_snode->song->path 이 두 부분에서 막히는 것이었다. 그래서 수많은 구글링과 생활코딩에 문의한 결과에 대한 리포팅을 남긴다. 1. LPCSTR(멀티 바이트) && LPCWSTR(유니코드) 구글링한 결과 아주 친절하신 분의 포스트를 읽게 되었는데 (http://egloos.zum.com/pelican7/v/1768951) 결과..
C언어 - save && load 예제 파일 입출력 쓸 때 보자. 12345678910111213141516171819202122232425262728293031323334353637383940414243void load(FILE *fp) { char buffer[BUFFER_LENGTH]; char *name, *title, *path, *context; while (1) { if (read_line(fp, buffer, BUFFER_LENGTH) artist != NULL) fprintf(fp, "%s#", ptr_song->artist->name); else fprintf(fp, " #"); if(ptr_song->title != NULL) fprintf(fp, "%s#", ptr_song->title); else fprintf(fp, ..
C 언어 파일 입출력 시 한글 깨짐 문제 말 그대로 한글이 포함된 txt파일을 읽었더니 아래와 같이 깨지는 경우를 해결하는 방법이다. 환경 : 윈도우 10 && Visual studio 2017 한글을 표현하는 방법에는 여러가지가 있다고 한다. 1. 유니코드 (visual studio에서 가장 기본적으로 사용하는 방법)2. utf-8 방식 vscode를 쓸 때 한글 주석이 깨지는 경우가 있는데 그럴 때 이걸로 바꾸면 잘됨3. ANSI - 잘 모르겠다. 윈도우라면 아무래도 가장 기본적으로 쓰고 있을 메모장에서는 디폴트가 유니코드이다. 그런데 이를 ANSI방식으로 바꾸어 주면 잘 된다. 바꾸는 방법은 이렇게 저장 시 밑에 옵션을 바꾸면 된다~!! 데이터를 잃을 수 있다는 경고가 뜨는데 그냥 확인을 누르고, 자 그럼 일단은 이제 잘 된다.
C 언어 - linked list search 예제 search 알고리즘이 아님. 1234567891011121314151617181920void search_song(char* artist, char *title) { Artist *prt_artist = find_artist(artist); if (prt_artist == NULL) { printf("No such artist exists\n"); return; } SNode *ptr_snode = prt_artist->head; while (ptr_snode != NULL && strcmp(ptr_snode->song->title, title) next; // ptr_snode->next if (ptr_snode != NULL && strcmp(ptr_snode->song->title, title) ..
C 언어 - linked list에서 node를 추가할 때 예외처리 노드를 추가하는 경우 이 linked list가 어떤 형태를 취하고 있느냐에 따라서 달라진다. 우선, 단일 linked list의 경우 123456789101112131415161718192021Artist* add_artist(char *name) { Artist *ptr_artist = create_artist_instance(name); Artist *p = artist_directory[(unsigned char)name[0]];// first node Artist *q = NULL; while (p != NULL && strcmp(p->name, name) next; } if (p == NULL && q == NULL) // unique node artist_directory[(unsigned ..
C 언어 - 파일을 load 할 때 주의할 점 C 언어 프로젝트를 하면서 어떤 저장된 파일을 불러올 경우 주의할 점이다. Kim#He was idiot#C:\\DocumentTim#He was not#D:\\FileTina#She was pretty#C:\\Picture 이렇게 되어 있었던 경우라고 하고 #을 기준으로 tokenizing을 한다고 가정한다. 123456789101112void load(FILE *fp) { char buffer[BUFFER_LENGTH]; char *name, *title, *path, *context; while (1) { if (read_line(stdin, buffer, BUFFER_LENGTH)
C 언어 형 변환(캐스팅)시 주의할 점 예를 들어서 11001111이라는 char 형의 데이터가 있다고 하자. 그런데 아스키 코드에 있는 영어만 사용할 것이 아니고 한글을 사용하고 싶은 경우가 있을 수 있다. 참고로 한글은 '가'라는 한 글자를 표현하기 위해서 2바이트를 필요로 하고, 이 문자가 존재하는 영역은 128을 넘어가는 범위에 있다고 한다. 그래서 한글을 쓰기 위해서는 unsigned char을 사용해야 하는데, 어쨋건 char형을 unsigned char 형으로 변환해야 하는 일이 생길 수 있다. 앞서 말한 11001111라는 char형 문자가 있다고 했을 때, 이를 int로 강제 형변환을 시키면 어떻게 될까? 11001111 -> 00000000000000000000000011001111이렇게?? 이게 아니다!!!111111111..