C, C++/Tips
-
"컴퓨터란 무엇인가요?" 같은 질문을 자주 하는 편이다. 개인적으로, 모든 프로그래밍 기술들은 프로그램을 조금이라도 더 편리하고 효율적으로 개발하기 위해 탄생했다고 생각한다. 그러므로 이러한 기술들을 학습하는 하나의 방법인, 기술이 탄생된 시점에서 어떤 부분이 프로그래밍에 불편했었고 그 문제를 어떤 방식으로 개선했지를 찾아가며 이해하는 방법에 익숙해지길 바래서다. "컴퓨터란 무엇인가요?"란 질문은 "컴퓨터는 어떤 부분을 해결하기 위해 탄생했나요?"와 동일한 질문이다. 개인적으로 개발자라는 직업을 시작하고 싶다면, 아래 질문 정도는 대답할 수 있어야 한다고 생각한다. 하드웨어가 뭔가요? 소프트웨어가 뭔가요? 개발자는 뭐 하는 사람인가요? 그리고 프로그래밍을 공부한다면, "컴퓨터는 무엇인가요?" 로 시작하는..
컴퓨터란 무엇인가?"컴퓨터란 무엇인가요?" 같은 질문을 자주 하는 편이다. 개인적으로, 모든 프로그래밍 기술들은 프로그램을 조금이라도 더 편리하고 효율적으로 개발하기 위해 탄생했다고 생각한다. 그러므로 이러한 기술들을 학습하는 하나의 방법인, 기술이 탄생된 시점에서 어떤 부분이 프로그래밍에 불편했었고 그 문제를 어떤 방식으로 개선했지를 찾아가며 이해하는 방법에 익숙해지길 바래서다. "컴퓨터란 무엇인가요?"란 질문은 "컴퓨터는 어떤 부분을 해결하기 위해 탄생했나요?"와 동일한 질문이다. 개인적으로 개발자라는 직업을 시작하고 싶다면, 아래 질문 정도는 대답할 수 있어야 한다고 생각한다. 하드웨어가 뭔가요? 소프트웨어가 뭔가요? 개발자는 뭐 하는 사람인가요? 그리고 프로그래밍을 공부한다면, "컴퓨터는 무엇인가요?" 로 시작하는..
2023.12.04 -
GNU 1971년 리차드 스톨만이 MIT에서 직업 연구활동을 시작했던 시절은 상업적인 컴퓨터 회사들 조차도 자유 소프트웨어를 배포하던 때였으므로 프로그래머들은 아무런 제약없이 서로 협력할 수 있었다 1983년 그러나 1980년대에 소프트웨어들은 소유와 독점에 관한 법률에 의해서 제한되었으며, 소유권자들은 소프트웨어의 자유로운 이용을 통한 사용자들의 상호 협력을 그들의 권리를 내세워서 금지시켰다. 바로 이것이 GNU 프로젝트가 시작된 이유였다. GNU "GNU is Not Unix" 는 유닉스와 같은 운영체제를 만들되, 유닉스와 달리 소유권이 없는 GNU 를 만들겠다는 것을 의미한 것이다. 1985년 GNU 프로젝트를 지원하기 위해 자유소프트웨어재단(FSF : Free Software Foundation)..
리눅스와 GCC, MinGWGNU 1971년 리차드 스톨만이 MIT에서 직업 연구활동을 시작했던 시절은 상업적인 컴퓨터 회사들 조차도 자유 소프트웨어를 배포하던 때였으므로 프로그래머들은 아무런 제약없이 서로 협력할 수 있었다 1983년 그러나 1980년대에 소프트웨어들은 소유와 독점에 관한 법률에 의해서 제한되었으며, 소유권자들은 소프트웨어의 자유로운 이용을 통한 사용자들의 상호 협력을 그들의 권리를 내세워서 금지시켰다. 바로 이것이 GNU 프로젝트가 시작된 이유였다. GNU "GNU is Not Unix" 는 유닉스와 같은 운영체제를 만들되, 유닉스와 달리 소유권이 없는 GNU 를 만들겠다는 것을 의미한 것이다. 1985년 GNU 프로젝트를 지원하기 위해 자유소프트웨어재단(FSF : Free Software Foundation)..
2023.11.24 -
AT&T, 벨 연구소 그리고 컴퓨팅 과학 센터유닉스를 이해하려면, 먼저 벨 연구소(Bell Labs)의 업무 방식과 창조적인 연구 환경을 이해해야 한다. AT&T American Telephone & Telegraph Company 1885년 출범하여 미국 전역에서 많은 지역 전화 회사를 합병하며, 사실상 미국 전국 전화 시장 독점했다. 사실상 전화 시장을 독점한 민간 사업체이기 때문에, 독점에 대한 문제에 벗어나는 편법으로 정부의 여러 규제와 견제 아래 운영될 수 있었다.1982 반독점으로 인한 분할 확정되어, 1984.1.1 회사가 8개로 분할된다. 벨 연구소(Bell Labs)Bell Telephone Laboratories1925년 AT&T는 미국 전역에 전화 시스템을 제공하는 과정에서 발생한..
History of UNIX & CAT&T, 벨 연구소 그리고 컴퓨팅 과학 센터유닉스를 이해하려면, 먼저 벨 연구소(Bell Labs)의 업무 방식과 창조적인 연구 환경을 이해해야 한다. AT&T American Telephone & Telegraph Company 1885년 출범하여 미국 전역에서 많은 지역 전화 회사를 합병하며, 사실상 미국 전국 전화 시장 독점했다. 사실상 전화 시장을 독점한 민간 사업체이기 때문에, 독점에 대한 문제에 벗어나는 편법으로 정부의 여러 규제와 견제 아래 운영될 수 있었다.1982 반독점으로 인한 분할 확정되어, 1984.1.1 회사가 8개로 분할된다. 벨 연구소(Bell Labs)Bell Telephone Laboratories1925년 AT&T는 미국 전역에 전화 시스템을 제공하는 과정에서 발생한..
2023.11.22 -
#include int cntKor(char pStr[]) { int i, k, cnt = 0; for (i = 0; pStr[i] != '\0'; i++) if (pStr[i] & 0x80) cnt++; return cnt/3; } int main(void) { char *s[] = {"A BCD EFG GH ", // space 9 // eng 8 "가 나 다 라 마 "}; // space 15 // kor 5 x 3byte printf("%d\n", cntKor(s[0])); printf("%d\n", cntKor(s[1])); printf("%d\n", cntKor(" 가나 DEF")); // space 5 // eng 3 // kor 2 x 3byte return 0; } 1Byte 8bit, ..
문자열 한글 카운팅#include int cntKor(char pStr[]) { int i, k, cnt = 0; for (i = 0; pStr[i] != '\0'; i++) if (pStr[i] & 0x80) cnt++; return cnt/3; } int main(void) { char *s[] = {"A BCD EFG GH ", // space 9 // eng 8 "가 나 다 라 마 "}; // space 15 // kor 5 x 3byte printf("%d\n", cntKor(s[0])); printf("%d\n", cntKor(s[1])); printf("%d\n", cntKor(" 가나 DEF")); // space 5 // eng 3 // kor 2 x 3byte return 0; } 1Byte 8bit, ..
2023.08.10 -
윈도우 콘솔 실행 + 음악 재생 2023.07.13
-
window11 c언어 키보드 입력 scanf( ) getch( ) kbhit( ) ① kbhit( ) 공식문서 kbhit( ) 함수 - Microsoft Learn ② 구문 #include int _kbhit( void ); ③ 반환 _kbhit( )함수가 실행되면, 키가 눌리지 않았으면 0 (False) 리턴 키가 눌리면 0이 아닌(True), 입력된 키 값을 buffer 에 넣는다.
윈도우 입력 kbhit( )window11 c언어 키보드 입력 scanf( ) getch( ) kbhit( ) ① kbhit( ) 공식문서 kbhit( ) 함수 - Microsoft Learn ② 구문 #include int _kbhit( void ); ③ 반환 _kbhit( )함수가 실행되면, 키가 눌리지 않았으면 0 (False) 리턴 키가 눌리면 0이 아닌(True), 입력된 키 값을 buffer 에 넣는다.
2023.07.13 -
윈도우 콘솔 이모지 출력 2023.07.13
-
Window11 Linux C언어 콘솔 출력 색 터미널에 출력 문자, 배경 색 변경 방법 중요한 로그(디버깅시 오류 등)를 보기 쉽게 컬러로 출력 가능 ① ANSI Color 코드 (링크) ANSI 컬러 코드 + 문자 + 뒤에 ANSI Reset 코드 예제) printf("\x1b[30m log text \x1b[0m \n"); 예제) printf("\x1b[30m" "%s" "\x1b[0m \n"); ② 사용법 ②.① #include #define ANSI_COLOR_RED "\x1b[30m" #define ANSI_COLOR_RED "\x1b[31m" #define ANSI_COLOR_GREEN "\x1b[32m" #define ANSI_COLOR_YELLOW "\x1b[33m" #define ANS..
콘솔 글자색, 배경색 수정(2) - Win, LinuxWindow11 Linux C언어 콘솔 출력 색 터미널에 출력 문자, 배경 색 변경 방법 중요한 로그(디버깅시 오류 등)를 보기 쉽게 컬러로 출력 가능 ① ANSI Color 코드 (링크) ANSI 컬러 코드 + 문자 + 뒤에 ANSI Reset 코드 예제) printf("\x1b[30m log text \x1b[0m \n"); 예제) printf("\x1b[30m" "%s" "\x1b[0m \n"); ② 사용법 ②.① #include #define ANSI_COLOR_RED "\x1b[30m" #define ANSI_COLOR_RED "\x1b[31m" #define ANSI_COLOR_GREEN "\x1b[32m" #define ANSI_COLOR_YELLOW "\x1b[33m" #define ANS..
2023.07.10 -
window11 C 언어 콘솔 출력 색 ① 공식문서 SetConsoleTextAttribute 함수 - Windows Console | Microsoft Learn ② 함수 원형 # 원형 BOOL WINAPI SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, // 핸들 (콘솔 화면 버퍼) _In_ WORD wAttributes // 색상 () ); // return 0; 성공 ③ 함수 매개 변수 ③.① hConsoleOutput // 표준 핸들 반환 (콘솔출력, 고정값) GetStdHandle(STD_OUTPUT_HANDLE) // 사용 예시 // SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 색상); ③..
콘솔 글자색, 배경색 수정(1) - Win11window11 C 언어 콘솔 출력 색 ① 공식문서 SetConsoleTextAttribute 함수 - Windows Console | Microsoft Learn ② 함수 원형 # 원형 BOOL WINAPI SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, // 핸들 (콘솔 화면 버퍼) _In_ WORD wAttributes // 색상 () ); // return 0; 성공 ③ 함수 매개 변수 ③.① hConsoleOutput // 표준 핸들 반환 (콘솔출력, 고정값) GetStdHandle(STD_OUTPUT_HANDLE) // 사용 예시 // SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 색상); ③..
2023.07.10