p163쪽의 모의고사 4회해설을보면 동그라미8미번부분에
마지막에읽은자료는실제자료가아니므로CNT에서1을차감
한다라는말이이해가안갑니다 왜실제자료가아니라는거죠??
안녕하세요.
파일에서 자료를 읽어올때는 다음과 같은 과정을 거칩니다.
파일에 1, 2, 3 이렇게 3개의 자료가 있다면
Cnt를 증가하고 자료를 읽습니다. Cnt는 1이되고 자료 1을 읽어옵니다.
EOF, 즉 파일의 끝인지를 묻습니다. 끝이 아니니까 다시 반복
Cnt를 증가하고 자료를 읽습니다. Cnt는 2가되고 자료 2를 읽어옵니다.
EOF, 즉 파일의 끝인지를 묻습니다. 끝이 아니니까 다시 반복
Cnt를 증가하고 자료를 읽습니다. Cnt는 3이되고 자료 3을 읽어옵니다.
EOF, 즉 파일의 끝인지를 묻습니다. 현재 읽은 자료는 3이므로 자료를 읽었다는 것은 파일의 끝이 아니라는 것입니다.
사람은 파일을 직접 보고 그게 마지막 자료인지 알지만 컴퓨터는 모릅니다. 컴퓨터는 한번 더 파일을 읽어 더이상 읽을 자료가 없다고 판단되어야 그제서 자료 읽기가 완료되었다고 생각하죠. 그래서 한번 더 반복합니다.
Cnt를 증가하고 자료를 읽습니다. Cnt는 4이되고 자료가 없다는 것을 읽어옵니다.
EOF, 즉 파일의 끝인지를 묻습니다. 끝이 맞으므로 반복을 중단합니다.
자료는 3개지만 Cnt는 자료 읽는 방식에 의해 실제 자료보다 1이 더 많은 4가 되어 있습니다.
그래서 실제 자료의 개수와 같게 하기 위해 처리 전에 Cnt에서 -1을 수행하는 것입니다.
오늘도 즐거운 하루 되세요.
"-
*2012-06-25 10:03:01
안녕하세요.
파일에서 자료를 읽어올때는 다음과 같은 과정을 거칩니다.
파일에 1, 2, 3 이렇게 3개의 자료가 있다면
Cnt를 증가하고 자료를 읽습니다. Cnt는 1이되고 자료 1을 읽어옵니다.
EOF, 즉 파일의 끝인지를 묻습니다. 끝이 아니니까 다시 반복
Cnt를 증가하고 자료를 읽습니다. Cnt는 2가되고 자료 2를 읽어옵니다.
EOF, 즉 파일의 끝인지를 묻습니다. 끝이 아니니까 다시 반복
Cnt를 증가하고 자료를 읽습니다. Cnt는 3이되고 자료 3을 읽어옵니다.
EOF, 즉 파일의 끝인지를 묻습니다. 현재 읽은 자료는 3이므로 자료를 읽었다는 것은 파일의 끝이 아니라는 것입니다.
사람은 파일을 직접 보고 그게 마지막 자료인지 알지만 컴퓨터는 모릅니다. 컴퓨터는 한번 더 파일을 읽어 더이상 읽을 자료가 없다고 판단되어야 그제서 자료 읽기가 완료되었다고 생각하죠. 그래서 한번 더 반복합니다.
Cnt를 증가하고 자료를 읽습니다. Cnt는 4이되고 자료가 없다는 것을 읽어옵니다.
EOF, 즉 파일의 끝인지를 묻습니다. 끝이 맞으므로 반복을 중단합니다.
자료는 3개지만 Cnt는 자료 읽는 방식에 의해 실제 자료보다 1이 더 많은 4가 되어 있습니다.
그래서 실제 자료의 개수와 같게 하기 위해 처리 전에 Cnt에서 -1을 수행하는 것입니다.
오늘도 즐거운 하루 되세요.
"