목록분류 전체보기 (126)
SH1R0_HACKER
파일 처리를 위한 전처리문 : #include 형태 정의를 위한 전처리문 : #define, #undef 조건 처리를 위한 전처리문 : #if, #ifdef, #ifndef, #else, #elif, #endif 에러 처리를 위한 전처리문 : #error 디버깅을 위한 전처리문 : #line 컴파일 옵션 처리를 위한 전처리문 : #pragma #include 헤더 파일과 같은 외부 파일을 읽어서 포함시키고자 할 때 사용된다. 이때의 파일은 이진파일(Binary file)이 아닌 C의 소스파일과 같은 형태의 일반 문서파일을 말한다. #include /* 이 위치에 stdio.h라는 파일을 포함시킨다. */ #include "text.h" /* 이 위치에 text.h라는 파일을 포함시킨다. */ ‘’를 사용..
Part02 객체지향의 도입 Chapter04 클래스의 완성 04-1 정보은닉 (Information Hiding) - 우리는 객체의 생성을 목적으로 클래스를 디자인한다. 좋은 클래스가 되기 위한 최소한의 조건에는 '정보은닉'과 '캡슐화'가 있다. 먼저 '정보은닉'부터 알아보도록 하자. 제한된 방법으로의 접근만 허용을 해서 잘못된 값이 저장되지 않도록 도와야 하고, 또 실수를 했을 때, 실수가 쉽게 발견되도록 해야 한다. 어떻게 해야 이러한 것이 가능하겠는가? "멤버변수를 private으로 선언하고, 해당 변수에 접근하는 함수를 별도로 정의해서, 안전한 형태로 멤버 변수의 접근을 유도하는 것이 바로 '정보은닉'이며, 이는 좋은 클래스가 되기 위한 기본 조건이 된다!" < 엑세스 함수 (access fun..
Part 02 객체지향의 도입 Chapter03 클래스의 기본 03-01 C++에서의 구조체 #include using namespace std; struct Point // 2차원 평면상에서의 좌표를 표현할 수 있는 구조체 { int xpos; int ypos; void MovePos(int x, int y) // 점의 좌표이동 { xpos += x; ypos += y; } void AddPoint(const Point& pos) // 점의 좌표증가 { xpos += pos.xpos; ypos += pos.ypos; } void ShowPosition() // 현재 x, y 좌표정보 출력 { cout
Part 01 C++로의 전환 Chapter02 C언어 기반의 C++ 2 02-2 새로운 자료형 bool - true와 false는 그 자체로 참과 거짓을 의미하는 데이터이기 때문에, 이들 데이터의 저장을 위한 자료형이 별도로 정의되어 있는 것은 당연하다. true와 false를 가리켜 bool형 데이터라 한다. 그리고 bool은 int, double과 마찬가지로 기본자료형의 하나이기 때문에 다음과 같이 bool형 변수를 선언하는 것이 가능하다. #include using namespace std; bool IsPositive(int num) // bool도 기본자료형이기 때문에 함수의 반환형으로도 선언이 가능하다. { if (num num; isPos = IsPositive(num); // 함수 IsP..
Part 01 C++로의 전환 Chapter02 C언어 기반의 C++ 2 02-1 Chapter 02의 시작에 앞서 [문제 1] 키워드 const의 의미 키워드 const는 어떠한 의미를 갖는가? 다음 문장들을 대상으로 이를 설명해보자. 1) const int num = 10; 2) const int* ptr1 = &val1; 3) int* const ptr2 = &val2; 4) const int* const ptr3 = &val3; [문제 1 답안] const를 변수 선언 앞에 붙이면 상수가 된다. 선언 시에 const가 붙여진 변수는 일단 초기화된 후에 그 값이 변경될 수 없다. 형식 : const 자료형 변수이름 = 초기값 설명 : const를 사용하면 값을 변경할 수 없는 변수를 정의할 수 있다..
Part 01 C++로의 전환 Chapter 01 C언어 기반의 C++ 1 01-1 printf와 scanf를 대신하는 입출력 방식 1) 문자열 "Hello World"의 출력 #include //표준 헤더파일의 선언에서는 확장자를 생략 int main(void) { int num = 20; std::cout
버블정렬 (bubble sort) - 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 #include int main(void) { int temp=0; int a[5]={9,6,7,3,5}; //오름차순으로 정렬 할 배열 for(int i=0;i
[TCP School - 기본적인 입출력] http://tcpschool.com/c/c_string_io #define EOF (-1) C언어는 파일의 끝에 도달했을 때 EOF라는 특별한 값을 반환하도록 하는데 EOF는 -1을 나타냅니다.
걍 이렇게 쓰면 됨 scanf("%d", &n); for(i=0; i>입력버퍼상태 : 132*22*3563*432*5$ 프로그램에 이런 문장들이 있다고 칩시다. scanf("%d", &a); scanf("%d", &b); scanf("%d", &c); ... scanf("%d", &a); 문이 실행되면, 첫 문자를 검사합니다. '1'이네요? whitespace가 아니므로 여기부터 입력이 시작됩니다. 10진수로 인식할 수 있는 한 최대한 많이 버퍼에서 읽어들입니다. 1, 3, 2를 차례로 읽습니다. 그 다음에 나오는 space는 당연히, 10진수 표현에서 배제되므로 읽지 않습니다. (버퍼에 남겨집니다.) 그리고 읽어들인 수들로 실제 값을 알아내서 변수 a에 저장합니다. >>입력버퍼상태 : *22*3563*..
[코딩도장] 38.2 입력한 크기만큼 메모리를 할당하여 배열처럼 사용하기 https://dojang.io/mod/page/view.php?id=318 #define _CRT_SECURE_NO_WARNINGS #include #include // malloc, free 함수가 선언된 헤더 파일 int main() { int size; scanf("%d", &size); int *numPtr = malloc(sizeof(int) * size); // (int 크기 * 입력받은 크기)만큼 동적 메모리 할당 for (int i = 0; i < size; i++) // 입력받은 크기만큼 반복 { numPtr[i] = i; // 인덱스로 접근하여 값 할당 } for (int i = 0; i < size; i++) ..