목록프로그래밍/C (25)
Jiyong's STUDY
#include size_t fread(void *buffer, size_t size, size_t count, FILE *stream); 이 함수의 역할은, stream에서 buffer로size 바이트의 크기의 데이터를 count개 받아들인다. int main(){FILE *fp=fopen("test.bin", "rb");char arr[5]; fread((void *)arr, sizeof(char), sizeof(arr)/sizeof(arr), fp);fclose(fp);} 이 함수를 보면, test.bin에서 1바이트의 데이터 5개를 읽어들여 arr에 저장한다. #include size_t fwrite(void *buffer, size_t size, size_t count, FILE *stream)..
#include int feof(FILE *stream); 간단하다. 인자로 스트림을 주었을 때 그 파일이 끝났다면 0이 아닌 어떠한 값을 출력한다.끝이 아니라면 0을 출력한다. EOF가 파일의 끝만을 알리는 의미가 아니라 오류의 의미를 띌 수도 있기 때문에EOF의 원인을 분석 할 때 쓰일 수도 있으며, 여러모로 유용하게 쓰일 수 있는 함수이기에 기억을 해 두자.
#include int fputc(int c, FILE *stream);int fgetc(FILE *stream); fputc는 문자를 출력하기 위한 함수. 사용법은 매개변수만 봐도 될 정도로 간단하다.fgetc는 문자를 입력받기 위한 함수, getchar와 같은 방법으로 사용하면 된다. int fputs(const char *s, FILE *stream);int fgets(const char *s, int n, FILE *stream); fputs는 문자열을 출력하기 위한 함수. 문자가 문자열로 바뀐 걸 제외하면 fputc와 같은 방법의 사용법.참고로 문자열을 파일에 출력하고 다시 입력받을 때 사용하려면 문자열의 마지막에 널 문자를 삽입하는 것 처럼 \n을 넣어 줄 개행을 해주어야 한다.그 이유는 fg..
파일 스트림과 관련된 함수 fopen, fclose 이전에 입출력 스트림에 대하여 다룬 적이 있다.일반적인 콘솔 입출력 스트림은 프로그램이 실행되면 생성되고, 종료되면 사라지게 된다. 하지만 파일 스트림은 사용자가 필요에 따라 생성을 요청할 수 있고, 닫을 수 있다. 즉 수동이라는 의미이다. fopen 함수와 fclose 함수를 소개하기 전에 먼저 파일 스트림의 모드를 설명하겠다. 파일 스트림의 모드란 무엇인가? 파일 스트림의 모드는 두글자 문자의 조합으로 이루어진다.첫째는 입력을 하느냐 또는 출력을 하느냐 이고,둘째는 텍스트 모드로 입출력을 하느냐 또는 바이너리 모드이냐 이다. 첫 번째로는 r은 출력, w는 입력, a는 덧붙여 입력이다.출력을 할 때엔 전달한 파일의 이름과 일치하는 파일이 없다면 EOF..
변수에 저장 가능한 정수를 나열하는 열거형 열거형은 enum으로 정의한다. 열거형의 정의 방법은 enum charnum {A=1, B=2, C=3}; 와 같은 방법으로 정의가 가능하다. 그리고 선언 방법은, enum charnum ABC; 와 같은 방법을 선언한다. 열거형 또한 typedef 선언을 통한 정의가 가능한데, typedef enum {A=1, B=2, C=3} charnum; typedef enum charnum {A=1, B=2, C=3} Charnum; 와 같이 구조체, 공용체와 typedef 선언을 통한 정의의 방법은 비슷하다. 예제를 보자. typedef enum {A=1, B=2, C=3} charnum; int main() {char num=0;scanf("%d", &num); s..
메모리 공간을 공유하는 공용체 공용체는 union이라는 키워드를 이용하여 정의한다. union mem{int inum;char cnum;double dnum;}; union Mem; 과 같이 선언할 수 있다.언뜻 보면 구조체와 비슷하다는 느낌이 든다. 단지 struct가 union으로 바뀐 것 이외엔 차이가 없어 보인다. typedef union{int inum;char cnum;double dnum;}mem; 실제로, 구조체와 마찬가지로 typedef 선언 또한 가능하다. typedef union{int inum;char cnum;double dnum;}mem; int main(){mem u;u.inum=20;u.cnum='A';u.dnum=3.14;printf("%d, %c, %2lf", u.inum..