Steve D'Aprano wrote:
I recall that the Pascal compiler had to do some clever behind the scenes
jiggery-pokery to get eof() to work, but that's what compilers are supposed
to do: make common tasks easy for the programmer.

Sometimes the jiggery-pokery worked, sometimes it didn't.
For example, the following wouldn't work as expected:

   while not eof(input) do begin
      write(output, 'Enter something:');
      readln(input, buffer);
      process(buffer);
   end

because the eof() would block waiting for you to enter
something, so the prompt wouldn't get printed at the
right time.

Basically, Pascal's eof-flag model was designed for
batch processing, and didn't work very well for
interactive use.

Unix and Windows sidestep the issue by not trying to
pretend you can detect EOF independently of reading
data, but using that model gracefully requires a
loop-and-a-half.

--
Greg
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to