반응형

파일 입출력 9

[python] 도서 관리 프로그램 - 클래스 및 파일 입출력 포함

시나리오 도서 관리 프로그램은 콘솔 응용 프로그램이다. 응용에서는 사용자와 상호작용을 담당한다. 응용은 사용자에게 메뉴를 보여주고 선택한 메뉴를 수행하는 것을 반복한다. 메뉴에는 장르 추가, 도서 추가,도서 삭제, 도서 검색, 전체 도서 보기, 프로그램 종료가 있다. 장르 추가를 선택하면 추가할 장르 명을 입력받아 추가한다. 도서 추가를 선택하면 장르를 선택하고 도서 정보를 입력받아 추가한다. 도서는 ISBN(주요키), 도서명, 저자, 출판사, 가격 정보를 사용자로부터 입력받는다. 도서 삭제 기능에서는 도서의 ISBN을 사용자로부터 입력받아 삭제한다. 도서 검색 기능에서는 도서의 ISBN을 사용자로부터 입력받아 검색한다. 전체 보기에서는 전체 도서 정보를 출력한다. 프로그램 종료할 때 데이터를 파일에 저..

[python] 도서 관리 프로그램 - 파일 입출력 포함

시나리오 도서 관리 프로그램은 콘솔 응용 프로그램이다. 응용에서는 사용자와 상호작용을 담당한다. 응용은 사용자에게 메뉴를 보여주고 선택한 메뉴를 수행하는 것을 반복한다. 메뉴에는 장르 추가, 도서 추가,도서 삭제, 도서 검색, 전체 도서 보기, 프로그램 종료가 있다. 장르 추가를 선택하면 추가할 장르 명을 입력받아 추가한다. 도서 추가를 선택하면 장르를 선택하고 도서 정보를 입력받아 추가한다. 도서는 ISBN(주요키), 도서명, 저자, 출판사, 가격 정보를 사용자로부터 입력받는다. 도서 삭제 기능에서는 도서의 ISBN을 사용자로부터 입력받아 삭제한다. 도서 검색 기능에서는 도서의 ISBN을 사용자로부터 입력받아 검색한다. 전체 보기에서는 전체 도서 정보를 출력한다. 프로그램 종료할 때 데이터를 파일에 저..

파일입출력 - 버퍼링

리눅스에서는 파일 입출력을 할 때 물리적인 파일에 조회 및 기록의 횟수를 최소화하여 성능을 높이기 위해 버퍼링 정책을 사용하고 있습니다. 만약 write 호출로 데이터를 쓰기 명령을 전달하면 해당 파일 작업을 위한 버퍼에 기록을 해 두었다가 정책에 따라 특정 시점에 물리적인 파일에 기록을 수행합니다. 리눅스에서 제공하는 버퍼링 정책에는 버퍼가 꽉 차면 물리적인 파일에 기록하는 FULL BUFFERING과 꽉 차거나 개행문자가 오면 처리하는 LINE BUFFERING, 버퍼를 사용하지 않는 NULL BUFFERING 정책을 제공하고 있습니 디폴트 버퍼링 정책은 FULL BUFFERING이며 char 장치 파일에 관한 작업은 LINE BUFFERING 정책을 사용합니다. 그리고 오류를 출력하는 stderr ..

[C언어 무료 동영상 강의] 113. 도서 관리 프로그램 - 저장

[C언어 무료 동영상 강의] 113. 도서 관리 프로그램 - 저장 다루는 내용도서 관리 프로그램,시퀀스 다이어그램 작성,저장 기능 구현 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C언어] 113. 도서 관리 프로그램 – 저장

[C language] 114. 도서 관리 프로그램 - 로딩

먼저 App에서는 파일을 읽기 모드로 열어야겠죠. 그리고 App의 정보를 파일에서 읽어오세요. 다른 물리 매체에 데이터를 선형으로 읽어와 프로그램 데이터가 되는 과정을 역직렬화라고 불러요. 역직렬화 함수에서는 마지막 부여한 장르 번호와 장르 개수를 로딩해야죠. 그리고 파일을 인자로 장르를 만들어 배열에 보관하세요. 파일로부터 장르를 만드는 함수에서는 역직렬화 과정이 필요해요. 장르번호, 장르명, 마지막 부여한 도서 번호를 파일에서 로딩하고 도서 개수를 로딩하세요. 그리고 파일에서 도서 개체를 만들어 배열에 보관하세요. 파일에서 도서 개체를 만드는 함수에서도 역직렬화를 수행하고 작업을 수행한 후에 App에서는 파일을 닫으세요.먼저 파일에서 데이터를 로딩하여 Book 개체를 생성하는 파일을 헤더 파일에 선언..

[c language] 113. 도서 관리 프로그램 - 저장

이번에는 데이터를 파일에 저장하는 기능의 시퀀스 다이어그램을 작성하기로 해요. 먼저 App에서는 파일을 쓰기 모드로 열어야겠죠. 그리고 App의 정보를 파일에 저장해요. 프로그램의 데이터를 다른 물리 매체에 선형으로 보내는 것을 직렬화라고 불러요. 직렬화 함수에서는 마지막 부여한 장르 번호와 배열에 보관한 장르 개수를 저장하세요 그리고 배열에 보관한 장르들의 정보를 파일에 직렬화하세요. 장르의 정보를 직렬화하는 함수에서도 장르번호, 장르명, 마지막 부여한 도서 번호를 파일에 저장하고 배열에 보관한 도서 개수를 저장하세요.그리고 배열에 보관한 모든 장르를 파일에 직렬화하세요. 파일의 정보를 직렬화하는 함수에서는 자신의 정보를 저장하세요. 이와 같은 작업을 완료하면 App에서는 파일을 닫아야겠죠. 먼저 Bo..

[C언어 소스] 회원 구조체 배열을 파일에 출력 및 로딩

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

[C언어 소스] 번호,이름,주소를 파일에 출력

[C언어 소스] 번호,이름,주소를 파일에 출력 //번호,이름,주소를 파일에 출력 #include #include #define FNAME "output.txt" int main(void) { int num=20; char name[200]="홍길동"; char addr[200]="서울특별시 종로구 종로1가 1번지"; FILE *fp; //쓰기 모드로 파일을 열면 파일의 내용은 사라집니다. //만약 파일이 없으면 새로 생성합니다. //fp = fopen(fname,"w")과 fopen_s(&fp,fname,"w")는 같은 기능 수행 fopen_s(&fp,FNAME,"w");//파일 쓰기 모드로 열기 if(fp == NULL) { perror("파일 열기 실패");//에러 출력 exit(0); //프로그램 ..

19. 기본입출력 - 입력

기본 입출력 - 입력 다루는 내용 - 기본 입력 - FILE의 멤버 _base, _ptr, _cnt 기본 입력을 위한 함수들도 기본 출력처럼 stdin버퍼에서 하나의 문자를 얻어오는 getchar, stream을 string으로 얻어오는 gets, 포맷에 맞게 얻어오는 scanf등이 있다. 이들은 공통적으로 stdin버퍼에 아직 처리되지 않은 stream이 존재하는지 확인을 하고 없을 경우에는 하나의 stream이 입력되기를 기다리고 있을 경우에는 입력되기를 기다리지 않는다. Look & Feel & Think 다음을 보면서 stdin버퍼에 아직 처리되지 않은 stream이 존재하지 않을 때 어떠한 동작을 하는지 생각해보자.흔히 프로그래밍을 학습을 할 때 작성한 이가 테스트를 하는 경우가 많다. 이로 인..

반응형