Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2150] Re:프로그래밍에 관한 기초적인 질문입니다. 아무쪼록 도움을..
조준회 [] 1061 읽음    2003-03-25 10:54

일단 File이 오픈되면..
메모리에 버퍼가 하나생기게 됩니다.

모든 Read/Write 작업은 버퍼에서 이루어지게 됩니다.

포함된 소스처럼 ..
하나의 파일을 오픈하고..똑같은 파일을 다른 파일포인터로 오픈을 하게되면..

두개의 버퍼가 생성이되어 ..
서로다른 버퍼에서 작업이 이루어지게 됩니다.

따라서 한쪽의 버퍼가 변경되더라도..실제 파일이 바로 적용이 되는 것이
아니기 때문에 문제가 생길수 있습니다.

두번째 파일포인터를 오픈하기 전에 첫번째 파일 포인터를 Close 시키면..
문제가 없을듯 싶습니다.




로터스 님이 쓰신 글 :
: 아래와 같은 구성으로 프로그램을 짜 보았습니다.
:
: 1. 난수함수로 1~100 사이의 랜덤한 숫자 50개 뽑음
: 2. 파일 random.txt 로 뽑은 숫자를 출력
: 3. 파일 random.txt 를 읽어들임
: 4. 숫자를 정렬하여(기초적인 퀵 소트 이용) a[100]에 저장
: 5. a[100] 화면에 출력
:
: (위는 대중의 설명이고 실제 적용한 데이터 값은 위와 다릅니다)
:
: 이렇게 설계를 하고 소스를 만들어 보았습니다. 해 봤는데
: 쓰레기 값(-82141~)이 나오더군요. random.txt에서 파일을
: 읽어들이지 못하고 있었습니다. 임의로 만들어놓은 다른 파일을
: 읽어들였을 경우엔, 정렬도 잘 되고 출력도 잘 되는걸 보니
: 분명히 random 파일을 못 읽어들이거나, 아니면 random 파일에
: 숫자가 저장되기 전에 읽어들여서 일지도 모른다는 생각이 들었습니다.
: 정확히 왜 그런지는 모르겠습니다.
:
: 물론 지금은 다른 몇가지 방법으로 해결을 했습니다만,
: 처음의 방식은 왜 안되었는가를 정확히 짚어내지 못해서
: 이렇게 글을 올립니다. 아무쪼록 도와주시면 고맙겠네요.
:
: ※파일 첨부하였구요, C로 작성하였습니다.

+ -

관련 글 리스트
2147 프로그래밍에 관한 기초적인 질문입니다. 아무쪼록 도움을.. 로터스 1268 2003/03/24
2150     Re:프로그래밍에 관한 기초적인 질문입니다. 아무쪼록 도움을.. 조준회 1061 2003/03/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.