본문 바로가기

프로그래밍/C언어.33

typedef란? typedef 사용법 typedef의 개념. 말 그대로 자료형(type)를 정의 하는 것(define) int나 float 같은 자료형을 내가 원하는 대로 정의 할 수 있다. 음.. 자료형의 이름을 바꾼다고 볼 수도 있겠다. typedef int MY; int라는 자료형을 MY라고 바꾼다는 뜻. 이렇게 정의하면 int a; 대신에 MY a; 로 선언해도 똑같다. 책에서 이야기 하는 장점의 예는, 지금은 모르겠지만 예전에 컴퓨터 시스템마다 int형의 바이트 크기가 다른 경우가 있었다. 때문에 int를 INT16, INT32 형식으로 선언해서 다른이가 알아보기 편하게 한다는 내용이 있었다. 이해하기 쉬운 예는.. unsingned int를 UINT로 변환하는 걸까나? unsigned int는 기존의 int에서 음수부분을 표기하던.. 2011. 3. 28.
C언어 파일 입출력 C언어 파일 입출력. 파일에 쓰기, 읽어오기 C언에서 화면에 쓰는 것 말고, 파일에 쓰기. 즉 저장하기와 읽기를 알아보자 파일에는 FILE구조체를 통해 접근 하는데 FILE구조체를 가르키는 포인터를 파일 포인터라고 한다. FILE *fopen(const char *name, const char *mode); name은 파일 이름, mode는 여는 방식.(읽기, 쓰기 등등) "r" - 읽기 모드 (파일이 반드시 있어야 함) "w" - 쓰기모드 (파일 없으면 생성, 있으면 기존 내용은 지워짐) "a" - 추가 모드 (파일이 없으면 생서, 있으면 파일의 맨 끝에 추가 됨,) "r+" - 읽기 쓰기 모드 (파일이 반드시 존재해야 함) "w+" - 읽기와 쓰기 모드 (파일이 없으면 생성, 있으면 기존 파일에 덮어.. 2011. 3. 28.
두 개의 문서 읽어서 새로운 하나에 쓰기 #include void main() { FILE *fp[2], *fpw; char arr[100]; // 파일에서 읽어들인 내용 저장할 배열 int i; fp[0] = fopen("read.txt", "r"); // 읽을 파일명, 모드 fp[1] = fopen("write.txt", "r"); fpw = fopen("test.txt", "w"); for(i=0; i 2011. 3. 28.
구조체. ->연산자 .연산자 구조체. 서로다른 자료형들을 하나로 묶는 것. #include #include struct student{ // 구조체 이름 또는 태그(tag) int number; // 학번 char name[10]; // 이름 double height; // 키 }; void main() { struct student s; // 구조체 변수 선언. s.number = 20060603; strcpy(s.name, "김동규"); //scanf("%s", s.name)와 동일. s.height = 163.5; printf("학번 : %d\n", s.number); printf("이름 : %s\n", s.name); printf("키 : %f\n", s.height); } 구조체는 변수 이다. 구조체를 선언 하고 변수를 만.. 2011. 3. 28.
[C언어] 문자열 복사 함수 (strcpy, strncpy) 간단예제. strcpy 함수의 원형 char* strcpy(char* dest, const char* src); src에 있는 내용을 dest로 복사한다. 하지만, 만약 dest의 크기가 원본의 크기보다 작다면? 오버플로우가 발생한다. 컴파일러에 따라 묵인하는 경우도 있다고는 하지만 언젠가 문제가 될수 있는 내용이다. 간단한 사용 예제 strncpy 함수의 원형 char* strncpy(char* dest, const char* src, size_t n); 문자열은 반드시 마지막에 문자열의 끝을 알려주는 null이 있어야 한다. 때문에 내가 10글자를 받고 싶다면 null을 포함해서 11개의 배열을 생성해야 한다. strcpy와 같지만 복사하는 배열의 최대 길이를 정할 수 있다. strcpy(복사받을주소, 복사할주.. 2011. 3. 28.
문자열 비교 함수 (strcmp, strncmp) strcmp 함수의 원형 int strcmp(const char* s1, const char* s2); s1과 s2를 비교해서 s1이 크면 양수, 같으면 0, 작으면 음수를 출력. 아스키 코드 값으로 비교해서 크고 작음을 판단한다. abc와 abd 의 경우 ab는 같고 c와 d를 비교해서 c가 아스키 코드 값이 작다. AAA와 AAAB의 경우 마지막 4번째는 null과 B를 비교한다. 사전에서 나오는 순서라고 봐도 무관하겠다. 어느 문자가 사전에서 더 나중에 나오는가?ㅎㅎ strncmp 함수의 원형 int strncmp(const char* s1, const char* s2, size_t n); strcmp와 같지만 비교할 문자의 길이를 정할 수 있다. 유용한 정보가 되셨다면 아래 손가락 버튼 한번 눌러.. 2011. 3. 28.
[C언어] 문자열 길이 반환 함수 (strlen) 간단예제. strlen 함수의 원형 size_t strlen(const char* s); 기본적으로 문자열의 끝에는 문자열의 끝을 알리는 null이 있다. strlen 함수는 null문자 이전 까지의 길이만 계산하여 리턴해 준다. 원형을 보고 아는 사람도 있겠지만. strlen() 괄호 안의 매개변수는 "문자열주소" 이다. 배열의 이름은 그 시작 배열의 주소와 동일하기 때문에 가능하다. strlen()은 그런 일이 별로 없지만 다른 문자열 관련 함수들에서 혼동하는 경우가 있다. 하지만, str[strlen(str)] 즉, str[4] 라고 하면 마지막 글자인 t 가 나올까? 여기가 함정이다. 4글자가 맞고. null 전까지 계산한게 맞다. 하지만, 배열은 0번부터 시작이다. 따라서 마지막 글자인 t는 str[3] .. 2011. 3. 28.
문자열 입.출력 함수(puts, fputs, gets, fgets) 문자열 출력 함수의 원형 int puts(const char* s); int fputs(conts char* s, FILE* stream); puts, fputs 모두 하나의 문자열를 출력할 때 일반적으로 사용하는 함수이다. 차이점은 puts은 모니터로 출력하지만, fputs는 출력 스트림을 지정할 수 있다는 것. 즉, file로 출력 할 수도 있고, 모니터로 출력할 수도 있다. 추가로 puts는 자동으로 줄을 바꿔준다. 줄바꿈을 보여주기 위한 간단한 예제 #include void main() { fputs("fputs 함수의 의한 출력, ", stdout); fputs("I LOVE YOU ", stdout); fputs("\n", stdout); puts("puts 함수에 의한 출력, "); puts.. 2011. 3. 28.
문자 입.출력 함수(putchar, fputc, getchar, fgetc) stdin(표준 입력 스트림), stdout(표준 출력 스트림), stderr (표준 에러 스트림) stdin은 키보드로 입력 받는 것. stdout는 모니터로 출력 하는 것. stderr은 에러를 출력 하는 것.(모니터로) 문자 출력 함수의 원형. int putchar (int c); int fputc(int c, FILE * stream); putchar, fputc 모두 하나의 문자를 출력할 때 일반적으로 사용하는 함수이다. 차이점은 putchar은 모니터로 출력하지만, fputc는 출력 스트림을 지정할 수 있다는 것. 즉, file로 출력 할 수도 있고, 모니터로 출력할 수도 있다. 문자 입력 함수의 원형. int getchar(void); int fgetc(FILE* stream); getcha.. 2011. 3. 28.
C언어 정리. 간략하게 C언어 정리 요약 했던 것들. 간단하게. 0이 아닌 모든 수는 True로 인식 %표기하고 싶을 땐 %% 하면 나옴. "는 \" 로 쓰면 됨 sizeof(배열)/sizeof(배열타입) 하면 배열의 요소의 개수가 나온다. int arr[10] 경우 배열 사이즈는 40일꺼구 인트 사이즈인 4로 나누면 10. EOF - 입력 함수가 파일의 끝을 의미. 파일이 아니고 키보드 입력의 경우 CTRL + Z로 인식. 중지. 문자 입.출력 함수(putchar, fputc, getchar, fgetc) getchar, fgetc 한 문자만 입력 받아서 반환. fgetc는 파일에서도 입력 받을 수 있다. (파일 내용 읽기) putchar, fputc 한 문자만 출력. fputc는 파일로도 출력 할 수 있다. (파일에 내용 .. 2011. 3. 25.