| [ 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 - |