Cでは、入力を読み取り、ファイルの終わりに達したときにプログラムを停止できます(EOF
)。そのようです。
#include <stdio.h>
int main(void) {
int a;
while (scanf("%d", &a) != EOF)
printf("%d\n", a);
return 0;
}
Luaでそれを行うにはどうすればよいですか?
Luaのドキュメントには、ファイルの読み取りやその他のIOに関する詳細が多数記載されています。ファイル全体を読み取る場合:
t = io.read("*all")
どうやらファイル全体を読み取ります。ドキュメントには、行ごとの読み取りなどの例があります。これがお役に立てば幸いです。
ファイルのすべての行を読み取り、各行に番号を付ける(行ごとの)例:
local count = 1
while true do
local line = io.read()
if line == nil then break end
io.write(string.format("%6d ", count), line, "\n")
count = count + 1
end
luaの同様のプログラムの場合、行ごとに読み取り、行がnil(行がEOFの場合に返される)であるかどうかを確認できます。
while true do
local line = io.read()
if (line == nil) then break end
end