char temp[1];
ifstream instream;
ofstream outstream;
instream.open("infile.txt");
outstream.open("outfile.txt");
while (!instream.eof()){
temp[0] =NULL;
instream.get(temp[0]); /////////////이 부분이 이해가 안가요 ㅠㅠ
outstream<<temp[0];
}
instream.close();
outstream.close();
이렇게 프로그램을 만들어서 실행하면 infile이라는 텍스트파일에 있는 내용전부를
outfile.txt에 복사하게 되는데요, 제가 이해안가는 부분이 instream.get(temp[0])이 부분입니다.
어째서 while문을 다시 돌때 infile에 있는 가장 첫번째 글자를 temp[0]에 넣어주는게 아니라, 그 다음 글자로 넘어가게되는건가요?
예를 들어서 infile.txt의 내용이
asdf
라고 가정하면 왠지 제가 생각할때는
첫번째 while 돌때 temp[0] = a
두번째 while 돌때 temp[0] = a
세번째 돌때도 계속 ~
이런식으로 될 것 같다고 생각을 하게 되네요...
복사가 재대로 되는 이유를 그냥 생각해봤을때
1. stream.get() 이 실행되는 순간에 어떠한 버퍼에 값이 차곡 차곡 쌓이고, get을 하는 순간 리턴값으로 가장 뒤에 있는 값을 줘서 그렇다.
일까 생각되는데 저렇게 되는 이유를 재대로 설명해주시면 감사하겠습니다.
자동으로 파일 오프셋이 가장 마지막으로 읽은 곳 + 1이 된다