반응형

C언어 파일 입출력 5

[C언어] 98. 파일 입출력 ftell, fseek

98. 파일 입출력 - ftell, fseek 이 외에도 입출력 작업의 위치를 확인하는 ftell 함수와 작업 위치를 변경하는 fseek 함수 등이 있어요. long ftell(FILE * fp); int fseek(FILE * fp, long offset, int origin); ftell 함수는 입력 인자로 입출력 작업 FILE *를 전달하면 작업 위치를 반환하는 간단한 함수예요. fseek함수는 FILE *외에도 세번째 인자로 기준이 되는 매크로 상수와 두번째 인자로 기준에서의 상대적 위치(음수도 가능)를 전달하여 작업 위치를 설정할 수 있어요. 세번째 인자로 들어가는 인자는 시작 위치를 의미하는 매크로 상수 SEEK_SET, 현재 위치를 의미하는 SEEK_CUR, 끝을 의미하는 SEEK_END가 ..

[C언어] 97. 바이너리로 파일 입출력

97. 바이너리로 파일 입출력 이번에는 메모리를 덤프하는 입출력 함수를 살펴볼게요. size_t fread(void * buf, size_t element_size, size_t count, FILE * fp); size_t fwrite(void * buf, size_t element_size, size_t count, FILE * fp); 메모리를 덤프하는 입출력 함수는 내용을 그대로 파일 입출력하는 함수들이예요. 메모리 덤프하는 입출력 함수는 fread와 fwirte 함수가 있어요. 두 함수는 입출력 방향이 메모리에서 파일스트림과 파일스트림에서 메모리라는 점이 다를 뿐이며 함수 원형이 같아요. 두 함수의 입력 인자는 data를 읽거나 쓸 buf의 주소, 요소 크기, 요소 개수, 파일 스트림이예요. 그..

[C언어] 95. 파일 입출력 - fopen,fclose

95. 파일 입출력 - fopen, fclose 이번에는 표준 입출력 라이브러리 사용 방법을 살펴볼게요. C언어에서는 파일 입출력을 할 수 있게 표준 입출력 라이브러리와 콘솔 입출력 라이브러리 등을 제공하고 있어요. 개발자가 O/S에서 제공하는 시스템 호출을 사용해서 파일 I/O 작업을 할 수도 있어요. 하지만 시스템 호출은 섬세한 제어가 필요하죠. 파일 입출력 라이브러리를 사용하는 것으로도 대부분 처리가 가능해요. 파일 입출력 작업을 하려면 먼저 작업할 파일을 열고 마친 후에는 닫아야겠죠. 표준 입출력 라이브러리에서는 원하는 파일을 열 때 사용하는 여러가지 함수를 제공하는데 대표적인 함수가 fopen이예요. FILE * fopen(const char * path, const char *mode); er..

[C언어 소스] 회원 배열의 데이터를 파일에 출력

[C언어 소스] 회원 배열의 데이터를 파일에 출력 //회원 배열의 데이터를 파일에 출력#include #include #define FNAME "output.txt" typedef struct Member{ int num; char name[200]; char addr[200];}Member; int main(void){ Member arr[5]= { {1,"홍길동","서울특별시 종로구 종로 1가 1번지"}, {6,"강감찬","서울특별시 종로구 종로 1가 2번지"}, {12,"이순신","서울특별시 종로구 종로 1가 3번지"}, {8,"을지문덕","서울특별시 종로구 종로 1가 4번지"}, {9,"한석봉","서울특별시 종로구 종로 1가 5번지"}, }; FILE *fp; int i; //쓰기 모드로 파일을 ..

[C언어 소스] 라인 번호와 함께 파일 내용 출력

[C언어 소스] 라인 번호와 함께 파일 내용 출력 //라인 번호와 함께 파일 내용 출력#include #include void ReadAndPrint(const char *fname);int main(void){ char fname[200]; printf("파일 이름: "); //공백을 포함한 파일 이름 입력할 때 gets_s(fname,sizeof(fname)); scanf_s("%s",fname,sizeof(fname)); ReadAndPrint(fname); return 0;}int Distinction(char ch);void ReadAndPrint(const char *fname){ FILE *fp; char buf[4096]; int line=0; //fp = fopen(fname,"r")과 ..

반응형