14.1.2 Terminal Input

Last-modified: 2025-03-23 (日) 19:11:20

14.1.2 端末入力

Octave には、ユーザーに入力を促すための 3 つの関数があります。 関数inputとmenu関数は通常、ユーザーとの対話型ダイアログを管理するために使用され、 keyboard関数は通常、簡単なデバッグを行うために使用されます。

: ans = input (prompt)

: ans = input (prompt, "s")

プロンプトを印刷し、ユーザー入力を待ちます。

例えば、

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

プロンプトを印刷する

Pick a number, any number!

ユーザーが値を入力するのを待ちます。ユーザーが入力した文字列は式として評価されるため、リテラル定数、変数名、またはその他の有効な Octave コードである可能性があります。

戻り引数の数、サイズ、クラスは、入力した式によって異なります。

リテラル文字列値のみを取得したい場合は、 2 番目の引数としてinput文字列を指定して呼び出すことができます"s"。これにより、Octave は、ユーザーが入力した文字列を最初に評価せずに直接返すようになります。

ページャーに表示されるのを待っている出力があるかもしれないので、fflush (stdout)を呼び出す前に必ず を呼び出すことをお勧めしinputます。これにより、保留中のすべての出力がプロンプトの前に画面に書き込まれるようになります。

See also: yes_or_no, kbhit, pause, menu, listdlg.

: choice = menu (title, opt1, …)

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

見出しtitleとオプションopt1 、…を含むメニューを表示し、ユーザー入力を待ちます。

GUI が実行中の場合、メニューは を使用してグラフィカルに表示されます listdlg。それ以外の場合は、タイトルとメニュー オプションがコンソールに表示されます。

タイトルは文字列であり、オプションは個別の文字列として、または文字列のセル配列として入力できます。

戻り値の選択は、ユーザーが選択したオプションの番号で、1 から数えます。ユーザーがダイアログを中止するか、無効な選択を行った場合は、0 が返されます。

この関数は対話型プログラムに役立ちます。渡されるオプションの数に制限はありませんが、1 つの画面に簡単に収まらないほど多くのオプションを表示すると混乱を招く可能性があります。

See also: input, listdlg.

: ans = yes_or_no ("prompt")

ユーザーに「はい」か「いいえ」で答えられる質問をします。

答えが「はい」の場合は論理 true を返し、答えが「いいえ」の場合は論理 false を返します。

1つの引数promptを取ります。これは質問するときに表示される文字列です。 prompt はスペースで終わる必要があります。yes-or-no文字列 '(はい、もしくは、いいえ)' を追加します。ユーザーは で回答を確認する必要があり RET、確認されるまで編集できます。

See also: input.

の場合input、通常のコマンド ライン履歴と編集機能はプロンプトで使用できます。

Octave には、ユーザーが改行を入力しなくてもキーボードから 1 文字を取得できる機能もあります。

: c = kbhit ()

: c = kbhit (1)

キーボードから 1 回のキーストロークを読み取ります。

引数 (通常は 1) 付きで呼び出された場合は、キーが押されるまで待たずに、キーボード入力バッファ内の次のキーストロークをすぐに返します。キーストロークが利用できない場合は、空の文字列 ("") を返します。

例えば、

c = kbhit ();

キーボードで入力された次の文字が cに設定されます。

c = kbhit (1);

上記の例と同じですが、キーが押されるまで待たず、キーが利用できない場合は空の文字列を返します。

See also: input, pause.