본문 바로가기

스트림

스트림에서 스트림으로 전송하기 이 글을 읽기 전에 다음 글들을 읽기를 권장합니다. 한 스트림을 다른 스트림으로 연결하기 스트림에서 이진 파일 다루기 스트림에서 STL 사용하기 이번 글에서는 이전과는 색다르게 문제풀이 방식으로 진행해 보겠습니다. 한 스트림으로부터 다른 스트림으로 내용을 전달하는 방법을 여러가지 소개하는 데에는 역시 예시문이 좋을 것 같아 이렇게 편집해보았습니다. 그럼 질문 스타트 ! 스트림에서 스트림으로의 복사 한 파일이 존재한다고 합시다. 있는 내용을 그대로 복사해서 다른 파일로 복사한다고 해보죠. 어떻게 짜겠습니까 ? void foo() { FILE *pIn = fopen( "in.txt", "rb" ); FILE *pOut = fopen( "out.txt", "wb" ); char buffer[1024] = { .. 더보기
스트림에서 STL 사용하기 이 글을 읽기 전에 다음 글들을 읽기를 권장합니다. 한 스트림을 다른 스트림으로 연결하기 스트림에서 이진 파일 다루기 이번에는 스트림에서 STL을 이용하는 법에 대해서 논해보겠습니다. 원래는 아래 글에 같이 묶으려했으나 글이 길어져 나누어 작성하게 되었군요. 스트림은 상수가 될 수 없다. 간단한 이야기입니다. 스트림은 그 특성상 읽을 떄나 쓸 때나 자신의 형상이 변합니다. 따라서 상수로 정의하면 스트림으로 할 수 있는게 아무 것도 없습니다. 스트림 반복자는 다른 반복자와 달리 컨테이너( 스트림 )의 내용을 바꿉니다. 이는 컨테이너와 스트림을 구분짓는 중요한 요소입니다. 앞으로의 설명에 이 내용을 잘 숙지하시기 바랍니다. 스트림에서 쓸 수 있는 STL 알고리즘은 한정되어 있다. 이 내용은 좀 중요합니다. .. 더보기
스트림에서 이진 파일 다루기 이 글을 읽기 전에 다음 글들을 읽기를 권장합니다. 한 스트림을 다른 스트림으로 연결하기 스트림의 두 가지 용법 스트림은 C의 파일 디스크립터와는 달리 타입에 따른 다른 입력을 제공합니다. 마치 자바에서 스트림으로 객체를 넘기면 toString()함수를 호출해 주듯이, int 형의 정수를 넣으면 자동으로 문자열로 변환하여 넣어주고 클래스와 스트림의 변환(Shift) 연산을 구현해주면 클래스 자체도 스트림으로 넘기고 받을 수 있게 해주죠. 위와 같은 기능을 서식화 입출력 기능( formatted I/O operation )이라고 합니다. 사용자의 타입을 항상 확인한 뒤에 그 타입을 스트림에 걸맞는 타입으로 변환하는 작업을 항상 진행해줍니다. 하지만 가끔은 문자의 그 자체를 이용하고 싶을 때가 있습니다. 예.. 더보기