Такой не продвигающийся ввод (с использованием advance='no'
) не означает, что позиция файла вообще не продвигается. Это означает, что позиция файла не продвигается сверх того, что требуется для удовлетворения требований списка ввода.
Таким образом, в этом случае положение файла улучшается путем считывания одного «действительного числа» в символьную переменную lnumber
. Следующее чтение продолжится с этого более позднего пункта. Эта более поздняя точка оказывается концом файла.
При более широком вводе , вводимом , позиция файла перемещается к началу следующей записи, даже если запись не требуется полностью.
Как отмечает High Performance Mark , комментируя , чтение одной и той же строки снова и снова, скорее всего, не то, что вам следует делать. Вы можете прочитать строку в символьную переменную (например, как это делается здесь) и многократно использовать эту переменную в качестве внутреннего файла . Однако, если вы действительно хотите снова прочитать строку, рассмотрите backspace
.