LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

давайте юзеру конкретное место ошибки покажем

Упрощенно: читаем строку, зовём Val(s,a,code). Если code<>0, то это позиция ошибки. Правда тут есть некоторые особенности поведения Val в разных диалектах, что для тривиального примера скорее вредно, чем полезно ;)
За скобками остались особенности перевода строки, вариантов тоже несколько больше одного:
1) положиться на рантайм (использовать EoLn + ReadLn)
2) явно сказать, какой конец строки обрабатываем, какие нет, извлекаем конец строки без ReadLn
3) извлекаем сами без ReadLn распространенные варианты LF, CRLF, CR, возможно, LFCR (он кривой, но кто-то такое пишет, попадается периодически). Но для тривиального примера это тоже такое себе «счастье» не по основной теме.

Это все к тому, что «правильно» сделать подобный фрагмент несколько сложнее, чем в исходном сообщении ;) И явно задать, что правильно, тоже необходимо ;)

И еще про конкретное место — есть #9, что выглядит часто как более чем одна позиция, есть #8, который вообще не выглядит ;) Есть в управляющих символах еще некоторые, которые делают задачу «давайте покажем позицию» слегка бессмысленной ;)

PS. И главное, за что не люблю вот эту вот мнимую пользу с «повторите ввод» — она не дает делать элементарное:

$ echo 2 2 | ./test

Исправление bormant, :

давайте юзеру конкретное место ошибки покажем

Упрощенно: читаем строку, зовём Val(s,a,code). Если code<>0, то это позиция ошибки. Правда тут есть некоторые особенности поведения Val в разных диалектах, что для тривиального примера скорее вредно, чем полезно ;)
За скобками остались особенности перевода строки, вариантов тоже несколько больше одного:
1) положиться на рантайм (использовать EoLn + ReadLn)
2) явно сказать, какой конец строки обрабатываем, какие нет, извлекаем конец строки без ReadLn
3) извлекаем сами без ReadLn распространенные варианты LF, CRLF, CR, возможно, LFCR (он кривой, но кто-то такое пишет, попадается периодически). Но для тривиального примера это тоже такое себе «счастье» не по основной теме.

Это все к тому, что «правильно» сделать подобный фрагмент несколько сложнее, чем в исходном сообщении ;) И явно задать, что правильно, тоже необходимо ;)

И еще про конкретное место — есть #9, что выглядит часто как более чем одна позиция, есть #8, который вообще не выглядит ;) Есть в управляющих символах еще некоторые, которые делают задачу «давайте покажем позицию» слегка бессмысленной ;)

Исправление bormant, :

давайте юзеру конкретное место ошибки покажем

Упрощенно: читаем строку, зовём Val(s,a,code). Если code<>0, то это позиция ошибки. Правда тут есть некоторые особенности поведения Val в разных диалектах, что для тривиального примера скорее вредно, чем полезно ;)
За скобками остались особенности перевода строки, вариантов тоже несколько больше одного:
1) положиться на рантайм (использовать EoLn + ReadLn)
2) явно сказать, какой конец строки обрабатываем, какие нет, извлекаем конец строки без ReadLn
3) извлекаем сами без ReadLn распространенные варианты LF, CRLF, CR, возможно, LFCR (он кривой, но кто-то такое пишет, попадается периодически). Но для тривиального примера это тоже такое себе «счастье» не по основной теме.

Это все к тому, что «правильно» сделать подобный фрагмент несколько сложнее, чем в исходном сообщении ;) И явно задать, что правильно, тоже необходимо ;)

Исходная версия bormant, :

давайте юзеру конкретное место ошибки покажем

Упрощенно: читаем строку, зовём Val(s,a,code). Если code<>0, то это позиция ошибки. Правда тут есть некоторые особенности поведения Val в разных диалектах, что для тривиального примера скорее вредно, чем полезно ;)
За скобками остались особенности перевода строки, вариантов тоже несколько больше одного:
1) положиться на рантайм (использовать EoLn + ReadLn)
2) явно сказать, какой конец строки обрабатываем, какие нет, извлекаем конец строки без ReadLn
3) извлекаем сами без ReadLn распространенные варианты LF, CRLF, CR, возможно, LFCR (он кривой, но кто-то такое пишет, попадается периодически). Но для тривиального примера это тоже такое себе «счастье» не по основной теме.