История изменений
Исправление 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 (он кривой, но кто-то такое пишет, попадается периодически). Но для тривиального примера это тоже такое себе «счастье» не по основной теме.