본문 바로가기

컴퓨터/C

C fopen, fclose 파일의 개방과 종료 I. 파일 개방 모드 파일 개방 모드 = 파일 접근 모드 + 데이터 입·출력 모드 1. 파일 접근 모드 모드 의미 r 파일을 읽기 위해서 개방한다. 오로지 읽는 것만 가능하다. w 데이터를 쓰기 위해 개방한다. 오로지 쓰는 것만 가능하다. 만약에 fopen 함수 호출 시 지정해 준 파일이 존재하지 않으면, 새로운 파일을 생성해서 데이터를 쓰게 된다. 지정해 준 파일이 존재하면, 그 파일의 데이터를 지워버리고 데이터를 쓰게 된다. a w모드와 달리, 지정해 준 파일이 존재하면 데이터를 지우지 않고 파일의 끝에서부터 데이터를 추가한다. 나머지 특징은 w 모드와 같다. r+ 파일을 읽고 쓰기 위해 개방한다. 파일이 존재하지 않는 경우, 새로운 파일을 생성한다. 파일이 존재하는 경우, 파일의 데이터를 지우지는 ..
C 열거형 I. 필요성 열거형을 사용함으로써 변수가 지니는 값에 의미를 부여할 수 있고 이에 따라서 프로그램의 가독성이 높아진다. II. 사용법 #include enum color {RED=1, GREEN=3, BLUE=5}; int main() { enum color c1=RED; enum color c2=GREEN; enum color c3=BLUE; printf("%d, %d, %d\n", c1, c2, c3); printf("%d, %d, %d\n", RED, GREEN, BLUE); return 0; }
C 공용체 I. 구조체와의 차이 구조체는 멤버 변수마다 각각의 메모리를 할당해주지만, 공용체는 멤버 변수 중 가장 메모리 할당량이 큰 변수 하나의 공간만 할당되어 그 메모리 공간을 서로 공유한다. II. 특징 메모리 공간을 공유하기 때문에 멤버 변수를 한번에 하나씩만 사용할 수 있다. #include union person { char name[20]; int age; }; int main() { union person p = {"LEE"}; //메모리를 공유하기에 첫번째 멤버 변수만 초기화 가능하다. printf("%s\n", p.name); p.age = 39; //한번에 하나의 멤버 변수만 할당할 수 있다. printf("%d\n", p.age); printf("%s\n", p.name); //지금은 age ..
C typedef I. typedef 키워드 용도 이미 존재하는 자료형에 새로운 이름을 붙이기 위한 용도이다. II. 사용법 typedef int INT; //기본 자료형 int에 INT라는 이름을 붙여준다. III. 구조체 정의와 typedef 선언 1. 분리 #include struct Data { int data1; int data2; }; typedef struct Data Data; int main() { Data d = {1, 2}; printf("%d, %d", d.data1, d.data2); return 0; } 2. 동시 #include typedef struct Data { int data1; int data2; } Data; int main() { Data d = {1, 2}; printf("%d, ..
C 중첩된 구조체 I. 중첩된 구조체란? 구조체를 포함하는 구조체이다. II. 사용법 #include struct point { int x; int y; }; struct circle { struct point p; int radius; }; int main() { struct circle c = {10, 10, 2}; //혹은 struct circle c = {{10, 10}, 2}; printf("[circle1]\n"); printf("x:%d, y:%d\n", c.p.x, c.p.y); printf("radius: %d\n", c.radius); return 0; }