Я создаю базовую программу в Silverfrost FTN5, в которой я ввожу целое число от пользователя.
Если пользователь вводит значение поплавка, он выдает ошибку и программа заканчивается. Есть ли способ обработать этот недопустимый ввод и попросить пользователя ввести действительный ввод?Несоответствие типа пользовательского ввода в FORTRAN
0
A
ответ
2
Существует несколько способов. 1) Прочитайте ввод в строке и проанализируйте строку. Если строка содержит период, отклоните ее и повторно запросите для ввода. Если строка отображается корректно, выполните внутреннее чтение целого из строки: read (string, *) IntVal
. 2) Более надежный, поскольку это изящно обнаруживает все ошибки: используйте ключевое слово IOSTAT=
в своем заявлении на чтение. Если значение отличное от нуля, произошла ошибка ... повторите запрос для ввода.
EDIT: Пример кода:
program TestRead
integer :: number, ReadStatus
write (*, '("Input integer: ")', advance="no")
ReadInt: do
read (*, *, iostat=ReadStatus) number
if (ReadStatus == 0) then
exit ReadInt
else
write (*, '(/ "READ ERROR: please re-input:")')
end if
end do ReadInt
write (*, '(/ "Value read: ", I0)') number
end program TestRead
Смежные вопросы
- 1. Несоответствие типа декларации типа
- 2. Несоответствие типа
- 3. Несоответствие типа Monad
- 4. Несоответствие типа в C
- 5. Несоответствие типа в java
- 6. Несоответствие типа в SQL
- 7. Спарк ошибка типа несоответствие
- 8. Левая функция Возвращает «Несоответствие типа»
- 9. Dropwizard несоответствие типа клиент
- 10. Несоответствие типа; нужен совет
- 11. WMI EnableStatic = Несоответствие типа
- 12. Необязательный параметр типа несоответствие
- 13. Тип Несоответствие же типа
- 14. Несоответствие типа VBA
- 15. Несоответствие типа MySQL
- 16. Range.Find ошибка типа несоответствие
- 17. Несоответствие типа - JavaScript
- 18. Отражение типа несоответствие
- 19. Как это «несоответствие типа»?
- 20. Несоответствие типа Excel VBA
- 21. Несоответствие типа: '[string: ""]'
- 22. Классическое несоответствие типа ASP
- 23. Scala Тип Несоответствие типа
- 24. F # функция типа несоответствие
- 25. Почему это несоответствие типа?
- 26. Несоответствие типа VSFlexGrid VB6
- 27. Несоответствие типа VBA
- 28. Несоответствие типа ArrayList
- 29. java.lang.IllegalArgumentException: несоответствие типа аргумента
- 30. Несоответствие типа VBScript
вы можете объяснить, как использовать IOSTAT для этого приложения? – tumchaaditya
стоит отметить, подход 1 имеет большое преимущество в том, что вы можете видеть/обрабатывать любую недействительную вещь, введенную пользователем. Пусть они набирают «abort», чтобы выйти изящно, например. – agentp