일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- tips강좌
- MyThread
- MyTread
- 포트폴리오
- linux
- win32
- ListBox
- 유료강좌
- visual
- 마이크로소프트
- C
- 정보처리기사
- 실습
- 김성엽
- Tipsware
- mfc 실습
- 정처기 독학
- SSG
- MFC
- 별찍기
- 미가공
- 도움말
- 핵심 요약
- do it c
- 충무창업큐브
- C++
- MFC 예제
- C언어
- Time
- mysql
- Today
- Total
목록C,C++ (54)
History

*시프트 연산자의 기능 시프트 연산자()는 변수의 값을 지정한 비트 수만큼 왼쪽 또는 오른쪽으로 비트를 이동시키는 기능을 한다. 예시는 아래 코드와 같다. unsigned char data= 0x1A; //변수 오른쪽에서 왼쪽 이동 //이동 전-> 0001 1010 data= data> 이동할 비트 수 -> 왼쪽에서 오른쪽으로 이동 //이동 전-> 0001 1010 data= data>>2; //2칸을 왼쪽에서 오른쪽으로 밀겠다 //이동 후-> 0000 0110 위의 예시처럼 이동한 비트들이 할당된 메모리의 크기를 벗어나면 해당 비트들은 사라지고 비트가 이동한 빈자리에는 0이 채워진다. 비트가 왼쪽으로 이동해서 사라지는 것을 오버플로(overflow) 비트가 오른쪽으로 이동해서 사라지는 것을 언더 플로(..

일반적으로 비트는 0 또는 1을 저장할 수 있는 공간이다. 예를 들면 전등을 제어하려고 한다. 전등은 키는 동작 그리고 끄는 동작이다. 전등은 이 두 가지로 제어할 수 있다. 문자 그대로 "켜지다, 꺼지다" 이렇게 제어하면 문자열을 처리해야 하기 때문에 보통 0이면 끄는 동작 1이면 키는 동작으로 우리는 약속하고 있다. 이러한 상황에서 우리는 0과 1을 비트로 제어할 수 있다. 그러나 비트연산자를 잘 모르면 자료형 중에서 가장 작은 단위인 char(1바이트==8비트)를 사용해서 0과 1을 대입하여서 전등을 제어할 것이다. 물론 전등이 1개만 있는 경우에는 괜찮지만 800개의 전등이 있을 시 char로 전등을 제어하면 800바이트를 사용할 수밖에 없다. 그러나 비트로 전등을 제어하면 100바이트로 전등을 ..
문제 정숫값을 공백으로 구분해서 입력받아 해당 숫자들을 합산한 값과 평균값을 출력하는 예제를 만들자. 조건 1. 첫번째로 입력한 정수는 합산을 위해 추가로 입력받을 정수의 개수이다. 2. 입력된 정수가 부족하면 사용자가 입력을 다 할 때까지 계속 입력받아야 한다. 3. 아래와 같이 사용자가 지정한 개수보다 많이 입력하면 나머지 값은 무시한다. 5 12 9 3 2 7 6 1(엔터) 결과= sum: 33 agv: 6.6 답은 아래와 같다. #include #pragma warning(disable:4996) int main() { int sel; int sum = 0; int num; float agv = 0.0; scanf(" %d", &sel); for (int i = 0; i < sel; i++){ s..
1. 일반 지역 변수의 초기화 일반적으로 변수를 초기화를 시키려면 아래 코드처럼 사용할 수 있다. int data=0; //선언과 동시에 0으로 초기화 int data={0}; //선언과 동시에 0으로 초기화 int data={0,}; //,를 적어도 선언과 동시에 0으로 초기화 그러나 아래와 같은 코드는 2개 이상의 값을 사용하여 초기화를 하려고 하기 때문에 오류가 발생한다. int data{0,1}; //한 개의 메모리에서 2개를 초기화 시키면 오류 2. 배열의 초기화 배열은 메모리를 그룹 짓는 개념이기 때문에 변수를 선언하면서 0으로 초기화를 시키려면 {}를 사용해서 배열의 개수만큼 초깃값을 나열해야 한다. int arr[5]={0,0,0,0,0}; //배열의 모든 항목이 0으로 초기화 하지만 배열..

차원이란 무엇일까? 수학에서 이야기하는 차원은 좌표 및 공간에 관한 개념이다. 프로그래밍에서 이야기하는 차원은 데이터의 종속성에 관한 개념이다. 이제부터 프로그래밍과 관련한 차원에 대해 설명하겠다. 배열은 왜 필요할까? 그냥 자신이 필요한 만큼 변수를 선언하면 배열이 굳이 필요한가?라는 질문에 나는 이렇게 대답할 수 있다. 만약 마트에서 a, b, c 물건을 3개씩 구매하려고 하는데, 이 물건들을 카테고리 별로 분류하지 않고, 이곳저곳에 놓여있다면, 손님은 물건을 사는데 시간이 많이 걸리고 원하는 제품을 정확히 찾기도 어려울 것이다. 코드로 비유하면 아래와 같다. int a1; char b1; int a2; float c1; int a3; int a4; char b2; int a5; float c2; c..
문제 설명 길이 n이 입력되면 다음과 같은 사각형을 출력한다. 예) n이 5일때 ***** * * * * * * ***** 입력 조건 길이 n이 입력된다. (n >= 3) 코드업 별 찍기 문제이다. 이번엔 사각형 출력이지만 테두리만 별이 찍히게 해야 한다. 어떻게 해야 할까? 코드는 아래에 있다. 방법. 1 #include int main() { int i, j, n; scanf( "%d", &n ); for( i = 0 ; i < n ; i++ ) { for( j = 0 ; j < n ; j++ ) if ( i == 0 || i == n - 1 || j == 0 || j == n - 1 ) printf( "*" ); else printf( " " ); printf("\n"); } return 0; } ..
질문 strcat함수 그냥 쓰는 거보다 한번 만들어 보는 게 좋다고 해서 함수 안에서 출력하는 부분 for문안으로 출력하면 abcdefgh가 나오는데 그냥 printf로 바로 출력하면 abcd만 나옵니다. 이유가 뭘까요?? 어디가잘못된건지.. 잘 모르겠습니다. void GetString(char data[],int size,char data2[],int size2) { char data3[10]{ 0 }; for (int i = 0; i 0, 1, 2, 3 여기까진 잘 들어가는데 i가..
두 문자열을 이어 붙이는 strcat함수를 직접 구현해보는 코드를 작성해보자 코드는 아래와 같다. #include char* ApeendString(char a_dest[], const char a_src[]) { int index = 0; while (a_dest[index]){ //저장할 문자열을 널값까지 넘긴다. index++; } int i; for (i = 0; i < a_src[i]; i++){ a_dest[index + i] = a_src[i]; //널값부터 새로 이어붙힐 문자열을 대입한다. } a_dest[index + i] = 0; //끝에 널값을 넣는다. return a_dest; //완성된 문자열의 시작 주소를 반환한다. } int main() { char str[10] = "abc"..