본문 바로가기
enum과 switch문 enum switch문 예제 1. enum main 함수 바깥쪽에서 switch문의 case에 상수값 대신에 사용할 이름 지정 enem { 이름1, //0 이름2, //1 이름3 //2 } enem { 이름1 =1, //0 이름2, //1 이름3 //2 enum SELECT { START =1, PAUSE, END }; int main(){ int sel; printf("1.시작\n2.일시정지\n3.종료\n>>> "); scanf_s("%d", &sel); puts(""); switch(sel) { case START: puts("시작합니다"); break; case PAUSE: puts("잠시 멈춥니다"); break; case END: puts("종료합니다"); break; } } 월을 입력받아서 해.. 2022. 9. 7.
이클립스 내에서는 파일이 있는데, 실제 경로에서는 파일이 사라져서 오류가 발생하는 경우 코드에는 문제가 없는데 왜인지 도저히 알 수 없는데 에러가 발생한다면? 이클립스 사용 시 생각보다 자주 발생하는 에러가 있다. 그건 바로! 이클립스 내 가상경로와 실제 경로가 연동되지않아서 차이가 날때 발생하는 오류다. 해당 경로에 class 파일이 있어야 했는데 가보면 없다. DAOImpl파일(오류가나는 파일)을 src(기본경로)로 옮겼다가 다시 기존 경로로 옮기면 class파일이 다시 생성된다. 진짜 생각보다 자주 발생하니까 어제까지만 해도 정상 작동하던 코드가 갑자기 안되거나 코드는 절대 틀리지 않았는데 작동이 안될 때 꼭 실제 경로를 한 번 가보자.! + 추가로 비슷한 문제가 있을 때, 전체 재컴파일 하는 방법도 있다. project > clean 을 진행해보자 2022. 9. 7.
Dev++ 에서 for 문 돌릴 때 오류 초기식에서 변수를 선언했을 때 GCC에서 컴파일 에러가 발생한다. 코드가 틀린건 줄 알고, 왜 이런지 잘 몰라서 한 참 고민했는데 컴파일 에러였다. 경고문구는 아래와 같았다. [Error] 'for' loop initial declarations are only allowed in C99 or C11 mode [Note] use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code 원인 : for 반복문의 초기식에서 변수를 선언하는 방식은 C99부터 지원하고, GCC 기본 설정은 C89인것 같다. 그래서 초기식에서 변수를 선언했을 때 컴파일 에러가 발생한다. 해결 : Dev-C++에서는 도구(T) > 컴파일러 설정(C)에서 컴파.. 2022. 9. 6.
조건 제어문 if문 예제 if else if 문 switch문 코드는 위에서 아래로 흐른다. 코드의 흐름을 제어할 수 있는 함수라하여 제어문이라고 부른다. 조건 제어문 : if, switch 반복 제어문 : for, while 1. if 문 조건문 - 조건식에 따라 코드의 실행 순서가 결정되는 제어문 if (조건식) { 조건식이 참이면 실행될 코드 } 조건식이 참이면 if 내부의 코드를 실행한 후 다음 코드를 진행 조건식이 거짓이면 if문 전체를 건더뛰고 다음 코드를 진행 *모든 제어문은 기본적으로 중괄호를 이용하여 실행될 코드를 분류 *실행될 코드가 한 줄이라면 중괄호를 사용하지 않아도 실행될 코드로 인식 int n1, n2; printf("정수 두개 입력: "); scanf_s("%d %d",&n1,&n2); i.. 2022. 9. 5.
입력함수 scanf() while(getchar() !='\n') 예제 1. scanf() scanf() : 입력 함수 프로그램이 동작하고 있는 중간에 데이터를 입력하여 프로그램에 입력한 데이터를 전달 scanf("서식문자", 변수주소); scanf_s("서식문자", 변수주소, 허용크기); *허용 크기는 문자열을 입력 받을 때 사용 (byte단위) /*정수 입력*/ int su; printf("숫자 입력: "); scanf_s("%d", &su);//int형 변수는 4byte 고정이기 때문에 허용크기 생략 printf("su : %d\n", su); /*실수 입력*/ float f1;//float : 4byte 실수, 7자리 까지 double f2;//double : 8byte 실수, 15~16자리 까지 prin.. 2022. 9. 5.
연산자 II 논리연산자 증감연산자 비트연산자 1. 논리연산자 논리 연산 중 or 연산과 and 연산, not 연산을 의미하는 연산자 || : or연산자 (shift+ \) 조건식 1 || 조건식 2 조건식중 하나라도 참이면 결과는 참 조건식이 전부 거짓이면 결과는 거짓 && : and 연산자 조건식 중 하나라도 거짓이 있으면 결과는 거짓 조건식이 전부 참이면 결과는 참 ! : not 연산자 !(조건식) 조건식이 참이면 결과는 거짓 조건식이 거짓이면 결과는 참 int a = 10, b = 20; //AND 연산 printf("a != 10||b> c : %d, d:%d\n", c, d);// c:6, d:12 d = c++ * 2; printf("c++ *2 >> c : %d, d:%d\n", c, d);// c:7,.. 2022. 9. 5.
연산자 sizeof() 변수의 주소 사용 대입연산자 산술연산자 복합대입연산자 관계비교연산자 1. sizeof() 메모리에 할당 된 데이터 공간의 크기를 계산해주는 함수 결과는 byte 단위로 반환 int a = 5; double b = 2.0; printf("5/2.0 =%.1f\n", a / b); printf("a:%d\nb:%d\na/b:%d\n", sizeof(a), sizeof(b), sizeof(a / b)); /* 결과 * 5/2.0 = 2.5 * a:4 * b:8 * a/b:8 a는 int형이기 때문에 4byte, b는 실수형이기 때문에 8byte */ 2. 변수의 주소 사용 변수명 앞에 & 기호를 붙이면 해당 변수의 메모리 주소(위치)를 사용 주소값을 출력할 때는 %p 서식 문자 사용 int a.. 2022. 9. 5.
형변환 자료형 변환(형변환) 1. 대입식을 이용한 형변환 대입 연산자(=)를 이용한 자료형 변환 대입 연산자 오른쪽의 데이터가 왼쪽의 자료형으로 자동 형변환 되어 대입. 단, 데이터의 손실이 발생할 수 있다. 2. 연산자를 이용한 형변환 서로 다른 자료형 간의 연산을 실행할 때 저장 공간(메모리)의 크기가 큰 데이터의 자료형으로 일괄 적으로 변환 (ex. int형과 double형 자료의 연산) 3. 강제 형변환 사용하려는 데이터의 왼쪽에 (자료형)을 입력하여 그 순간에만 () 내부에 작성한 자료형으로 형변환 되어 실행 //대입식을 이용한 형변환 int a; double b = 2.5; a = b; printf("a: %d\n", a); //연산식을 이용한 형변환 ; printf("1. 5/2=%d\n", 5 /.. 2022. 9. 4.
자료형 메모리 상수 & 변수 자료형 변수명 작성규칙 예제 1. 메모리(RAM) - 프로그램 동작하는 공간 - 휘발성, 전원이 끊어지면 내용이 사라짐 저장 장치에 들어있는 데이터에 특정 작업을 하기 위해 데이터를 복사하는 공간 ex> 8GB RAM 8GB = 8,192MB = 8,388,608KB = 8,589,934,592byte 2. 상수 & 변수 상수 : 메모리에 저장되는 데이터 중 값을 변경할 수 없는 데이터 + 위치를 찾을 수 없는 데이터 변수 : 메모리에 데이터를 저장할 때 자료형을 사용하여 데이터를 저장하는 공간을 만들어서 사용 이름을 붙여서 사용 이름을 이용해서 해당 공간에 접근, 값을 변경할 수 있다. 주소값을 이용하여 메모리 내부의 저장된 위치를 직접 찾아갈 수 있다. 효율적인 메모리 관리를 위.. 2022. 9. 4.