2

Cでは、入力を読み取り、ファイルの終わりに達したときにプログラムを停止できます(EOF)。そのようです。

#include <stdio.h>

int main(void) {
    int a;       
    while (scanf("%d", &a) != EOF)
        printf("%d\n", a);
    return 0;
}

Luaでそれを行うにはどうすればよいですか?

4

2 に答える 2

8

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
于 2011-02-23T17:28:13.587 に答える
3

luaの同様のプログラムの場合、行ごとに読み取り、行がnil(行がEOFの場合に返される)であるかどうかを確認できます。

while true do
  local line = io.read()
  if (line == nil) then break end
end
于 2011-02-23T17:32:38.873 に答える