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. Это гарантирует, что весь ожидающий вывод будет записан на экран перед отображением запроса.
-
Отображает меню с заголовком title и опциями opt1, … и ожидает ввода от пользователя.
Если GUI работает, меню отображается графически с помощью
listdlg. В противном случае заголовок и пункты меню печатаются в консоли.title — это строка, а опции могут быть введены как отдельные строки или как ячейный массив строк.
Значение возврата choice — это номер выбранной пользователем опции, считая с 1. Если пользователь прерывает диалог или делает недопустимый выбор, возвращается 0.
Эта функция полезна для интерактивных программ. Количество опций, которое можно передать, не ограничено, но может быть затруднительно представить более опций, чем помещается на экране.
- : ans = yes_or_no ("prompt") ¶
-
Задает пользователю вопрос «да/нет».
Возвращает логическое значение «истина», если ответ «да», или «ложь», если ответ «нет».
Принимает один аргумент, 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/v7.2.0/Terminal-Input.html