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을 하는 순간 리턴값으로 가장 뒤에 있는 값을 줘서 그렇다.
일까 생각되는데 저렇게 되는 이유를 재대로 설명해주시면 감사하겠습니다.