CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2002년 12월  1일 일요일 오전 03시 11분 28초
제 목(Title): Re: [질문] C++에서 파일 스트림


그 문제의 원인은 한마디로 말하면 EOF라고 생각되는 위치에
newline 문자가 들어가 있어서 발생하는 겁니다. 헥사코드 
덤프하는 툴로 파일 마지막을 검사해보세요.(vi에서 편집할 때
마지막 줄에 newline을 넣지 않더라도 자동으로 생깁니다)

dd if=fruit of=fruit.new bs=1 count=fruit의사이즈-1
해서 만들어진 fruit.new로 테스트해보세요.

벡터랑은 전혀 상관없고 >> 대신에 get계열이나 read계열의
함수를 쓰더라도 마찬가지의 문제가 생깁니다.

다만, >>로 읽으면 마지막 문자열이 남아있게 되지만 
getline같은 것으로 읽으면 버퍼가 비어있다는 것을
확인할 수 있으므로 if문 하나로 마지막 newline은 무시할
수 있겠습니다. C++에 문외한이라서 더 깔끔한 방법은 잘
모르겠네요. 다른 분들께서 조언해주시겠죠.


---
어떤 성취가, 어떤 조롱이, 또는 어떤 고뇌가 나를 기다리고 있을지 나는 모른다. 
나는 아무 것도 모른다. 그러나 나는 아직 과거의 경이로운 기적의 시대가 영원히 
과거의 것이 되어 버리지는 않았다는 사실을 굳게 믿고 있다.  - Stanislaw Lem -
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.