title | summary | date |
---|---|---|
read |
標準入力から一行分の文字列を読み取ります。 |
2022-12-28 |
名前空間: Alice
アセンブリ: Losetta.Runtime.dll
ソースコード: Alice.Core.Utils.cs
標準入力から一行分の文字列を読み取ります。
namespace Alice;
public string? read();
戻り値 | |
---|---|
string? |
読み取った一行分の文字列。次の行がなかった場合はnull 。 |
???note "対応: AliceScript RC1以降" |対応|| |---|---| |AliceScript|RC1、RC2、GM、2.0、2.1、2.2、2.3、3.0| |AliceSister|GM、2.0、2.1、2.2、2.3、3.0| |Losetta|0.8、0.9、0.10|
この関数は、標準入力から一行分文字列を読み取ります。
行とは、任意個の任意の文字の後にキャリッジリターンU+000d
、改行U+000a
または、env_newlineの値で終わる文字列です。この関数が返す文字列には、行の終端文字は含まれません。
この関数は、最大で256文字読み取ることができます。しかし、終端文字は含まれないため、実質254文字を読み取れます。
この関数は、同期的に実行されます。
処理は行が読み取られるか、++Ctrl+Z++ キー(Windowsでは何も入力せず ++Enter++ キー)が押下されるまで一時停止します。++Ctrl+Z++ キーが押された場合、この関数はnull
を返します。
標準入力がファイルにリダイレクトされた場合、この関数はリダイレクトされたファイルから一行分文字列を読み取ります。たとえば、test.txt
というファイルが以下の内容であったとします。
This is test.
このファイルに対して、次のようにコマンドを実行すると、例のような結果になります。
> alice -e print(read()) < test.txt
This is test.
次の例は、標準入力から名前を取得してあいさつする例です。
print("こんにちは!あなたの名前を教えてください。");
var name=read();
print("{0}さん、こんにちは!これからよろしくね。",name);
また、write関数と併用しプロンプトを表示することで、ユーザーが今何を入力すべきかを分かりやすくできます。
print("こんにちは!あなたの名前を教えてください。");
write("お名前>");
var name=read();
print("{0}さん、こんにちは!これからよろしくね。",name);