목록컴퓨터 IT/C++ 언어 (21)
바람이 머문 언덕
if문은 C에서 가장 기본이되는 제어문 중 하나이다. if(조건) { 실행 내용; // 실행 할 명령이 하나 뿐이면 중 괄호를 사용 하지 않아도 된다. } if문은 조건이 만족하면 (0이 아니면) 실행하고 조건이 맞지 않으면 실행을 하지 않고 중 괄호를 건너 뛴다. 간단한 하게 명령의 실행을 제어 할 수 있게 해준다. if문은 if, if else, else 세가지로 구성이 된다. f(조건) { 실행 내용; } else if(조건) // 위의 조건이 만족하지 않으면 if else를 실행 한다. { 실행 내용; } else // 위의 조건이 만족하지 않으면 else를 실행 한다. { 실행 내용; } if문은 위의 세가지 형태로 정의 할 수 있는데 if문은 제일 처음에 else 문은 마지막에 와야 하며 한 ..
문자열 제거 함수를 흉내 내어 보았습니다. 프로그램을 하다가 보면은 문자열을 가지고 하는 작업이 많죠. 문자열 관련 함수를 이미 만들어 진 것을 사용 해도 되지만 간단한 것은 직접 만들면서 c 제어문의 사용 법에 익숙해지는 것도 좋은 방법 중 하나라고 생각 합니다. #include 출력 예제로 입출력은 c++의 i/o 스트림을 이용 했습니다. int delchar(char *buf, char *a); // 문자열 buf에서 문자열 a를 모두 제거 int delSchar(char *buf, char *a); // 문자열 buf에서 제일 처음에 나타나는 문자열 a를 제거 int delEchar(char *buf, char *a); // 문자열 buf에서 제일 마지막에 나타나는 문자열 a를 제거 using n..
C++ 에서는 I/O 스트림이라는 입출력 기능을 제공 하는데 C++ iostream은 cin과 cout라는 오브젝트가 포함되어 있어서 C에서 보다 좀 더 쉽게 입출력을 할 수 있다. #include int main(int argc, _TCHAR* argv[]) { int i=9; char a[125] = " 입니다."; std::cout
operator를 이용 해서 연산자를 재정의 해서 문자를 연산자로 추가 삭제하는 예제를 만들어 보았습니다. 이 기능은 mfc의 CString, 베이직과 같은 고급 언어에서는 익숙한 기능으로 operator 를 이용해 연산자를 재정의 해놓으면 문자열을 가지고 작업 할 때 편한게 사용 할 수 있습니다. 고급 언어에서 사용하는 기능들 처럼 여러 가지 함수를 넣지는 안고 간단히 operator를 가지고 연산자를 재정의 하는 방법과 이해를 돕기 위해서 몇 가지 연산자를 사용해서 만들어 보았습니다. 앞에 operator를 설명하면서 간단히 동적 메로리 할당을 이용해서 문자 열을 추가 삭제 가능 하도록 만들어 보았는데 그 때는 아무런 이상이 없었는데 동적 메모리를 사용하니 에러가 나는 부분이 있었습니다. 전역 변수는..
기본적으로 제공해주는 창태 창을 이용해서 윈도우를 이동 시키면 편하지만 상태 창을 위도우에 넣지 않고 윈도우를 만들어야 할 때가 있다. 그 때 윈도우를 이동 시키려고 하면 MoveWindow라는 api 함수를 이용해야 한다. MoveWindow 함수 사용을 좀 더 편하게 하기 위해서 앞에서 만든 클래스를 이용해서 예제를 만들었다. 실행 파일과 소스는 아래에 첨부 했고 여기서는 간단한 이용 예만 적어 보았습니다. #include class movewindow { public: movewindow(); ~movewindow(); void bottonup(); void move(int x,int y); void bottondown(int x, int y,HWND h); private: bool ifla; HW..
c++에서 새로 생긴 개념 함수 오버로딩과 디폴트 인수 그리고 reference는 어떤 개념일까? 함수 오버로딩 : 함수 오버로딩이라고 특별하게 어떤 것을 적어 주어야 하는게 아니고 이름이 같아도 전달인자가 다르면 C++에서는 다른 함수로 인식하게하여 전달인자가 다른 함수는 같은 이름을 사용해도 되게 만든 기능을 함수 오버로딩이라 한다. 예) int add(int a, int b); float add(float a, float b); 위의 예처럼 정수와 실수를 더하는 두 함수처럼 전달이자가 다르기 때문에 함수이름을 같게 만들어도 c++에서는 서로 다른 함수로 인식하기 때문에 사용하는데 이상이 없다. 디폴프 인수 : C++에서는 디폴트 인수라는 또 하나의 편리한 기능을 제공 한다. 어떤 함수를 호출 할 때..
변수는 크게 로칼 변수와 글로벌 변수가 있는데 로칼 변수는 사용 범위에 제한이 있다. c 언어에서는 변수를 함수 시작 부분에 정의 해주어야 하기 때문에 변수의 사용 범위는 함수 내라고 할 수 있으나 c++에서는 함수 내의 어느 곳이나 선언 할 수 있기 때문에 변수의 사용 범위는 변수 선언 이후라고 할 수 있다. 간단한 예) int b = 0; // 글로벌 변수는 함수 밖에서 선언되며 프로그램 종료시 소멸 된다. int main(void) { int i = 0; // i의 사용 범위는 main 함수 내이다. for( int k = 0; k < 5; k++) // k는 for문 내에 선언 하였기 때문에 for문이 종료되면 소멸되기 때문에 { // for 문 밖에서 사용하면 에러가 난다. i += k; } r..
2에서 9사이의 두 수를 입력 하면 세 줄씩 구구단을 텍스트 파일에 출력합니다. 입력 한 두 수 중에 앞에 값이 작으면 작은 수부터 출력하고 앞에 값이 크면 반대로 큰 수부터 구구단을 출력 합니다. #include #include #include int main() { FILE* file; int i, n, k, k1, s=1, t, t1; // k2, file = fopen("temp.txt","wt"); // 파일을 쓰기 위해서 열고 파일이 있으면 데이트는 삭제, 없으면 생성. if(file == NULL) return 0; printf("2에서 9사이의 두수를 입력하세요: "); scanf(" %d %d", &i , &k); // 출력 할 구구단 범위를 입력 받는다. if(i>k) // 먼저 출력 ..