14.1.2 终端输入

Octave 提供了三个函数,可以方便地提示用户输入。inputmenu 函数通常用于管理与用户的交互式对话框,而 keyboard 函数通常用于进行简单的调试。

 
ans = input (prompt)
ans = input (prompt, "s")

打印 prompt 并等待用户输入。

例如:

input ("Pick a number, any number! ")

会打印提示:

Pick a number, any number!

然后等待用户输入一个值。用户输入的字符串将作为表达式进行求值,因此它可以是字面常量、变量名或任何其他有效的 Octave 代码。

返回参数的数量、大小和类型取决于输入的表达式。

如果您只希望获取文字字符串值,可以使用字符串 "s" 作为第二个参数来调用 input。这告诉 Octave 直接返回用户输入的字符串,而不对其进行求值。

因为可能有输出正在等待分页器显示,所以在调用 input 之前始终调用 fflush (stdout) 是一个好习惯。这将确保在显示您的提示之前,所有挂起的输出都已写入屏幕。

另请参阅: yes_or_nokbhitpausemenulistdlg

 
choice = menu (title, opt1, …)
choice = menu (title, {opt1, …})

显示一个带有标题 title 和选项 opt1、……的菜单,并等待用户输入。

如果 GUI 正在运行,则使用 listdlg 以图形方式显示菜单。否则,标题和菜单选项将打印在控制台上。

title 是一个字符串,选项可以作为单独的字符串或字符串元胞数组输入。

返回值 choice 是用户所选选项的编号(从 1 开始计数)。如果用户中止对话框或做出无效选择,则返回 0。

此函数对交互式程序非常有用。可以传递的选项数量没有限制,但呈现的选项超过一个屏幕能轻松容纳的数量时,可能会令人困惑。

另请参阅: inputlistdlg

 
ans = yes_or_no ("prompt")

向用户提问一个是/否问题。

如果答案为是,则返回逻辑真(true);如果答案为否,则返回逻辑假(false)。

接受一个参数 prompt,即提问时要显示的字符串。prompt 应以一个空格结尾;yes-or-no 会在其后附加字符串 '(yes or no) '。用户必须按 RET 确认答案,并且在确认之前可以对其进行编辑。

另请参阅: input.

对于 input,正常的命令行历史记录和编辑函数在提示符下均可用。

Octave 还提供了一个函数,可以从键盘获取单个字符,而无需用户按下回车键。

 
c = kbhit ()
c = kbhit (1)

从键盘读取单个按键。

如果使用参数(通常为 1)调用,则不等待按键,立即返回键盘输入缓冲区中的下一个按键;如果没有可用的按键,则返回空字符串("")。

例如:

c = kbhit ();

将在用户在键盘上键入下一个字符时,立即将 c 设置为该字符。

c = kbhit (1);

与上例完全相同,但不等待按键;如果没有可用的键,则返回空字符串。

另请参阅: inputpause.


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-4