14.1.2 Ввод с терминала
Octave имеет три функции, которые облегчают запрос ввода данных у пользователя. Функции input и menu обычно используются для управления интерактивным диалогом с пользователем, а функция keyboard обычно используется для простого отладки.
- ans = input (prompt)
- ans = input (prompt, "s")
-
Выводит prompt и ожидает ввода от пользователя.
Например,
input ("Pick a number, any number! ")выводит приглашение
Pick a number, any number!
и ожидает, пока пользователь введёт значение. Введённая пользователем строка оценивается как выражение, поэтому она может быть литеральной константой, именем переменной или любым другим допустимым кодом Octave.
Количество возвращаемых аргументов, их размер и их тип зависят от введённого выражения.
Если вас интересует только получение литеральной строковой величины, можно вызвать
inputсо строковой величиной"s"в качестве второго аргумента. Это сообщает Octave вернуть введённую пользователем строку непосредственно, не оценивая её предварительно.Поскольку может быть вывод, ожидающий отображения с помощью пагинатора, рекомендуется всегда вызывать
fflush (stdout)перед вызовомinput. Это обеспечит запись всего ожидающего вывода на экран перед отображением приглашения.
- ans = yes_or_no ("prompt")
-
Задает пользователю вопрос «да/нет».
Возвращает логическое значение true, если ответ «да», или false, если ответ «нет».
Принимает один аргумент, prompt, который представляет собой строку, отображаемую при задании вопроса. prompt должен заканчиваться пробелом;
yes-or-noдобавляет к нему строку ‘(да или нет) ’. Пользователь должен подтвердить ответ с помощью RET и может его редактировать до подтверждения.См. также: input.
Для input, доступны стандартная история команд командной строки и функции редактирования в приглашении.
Octave также имеет функцию, которая позволяет получить один символ с клавиатуры, не требуя от пользователя ввода возврата каретки.
- kbhit ()
- kbhit (1)
-
Считывает одиночный нажатый символ с клавиатуры.
При вызове с аргументом не ожидает нажатия клавиши.
Например,
x = kbhit ();
присвоит x следующему напечатанному символу с клавиатуры, как только он будет нажат.
x = kbhit (1);
идентично предыдущему примеру, но не ожидает нажатия клавиши, возвращая пустую строку, если доступна никакая клавиша.
© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v5.2.0/Terminal-Input.html