Как мне прочитать до конца файла? - PullRequest
1 голос
/ 23 февраля 2011

В C я могу прочитать ввод и остановить программу, когда она достигает конца файла (EOF). Вот так.

#include <stdio.h>

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

Как я могу сделать это в Lua?

Ответы [ 2 ]

7 голосов
/ 23 февраля 2011

Документация Lua содержит массу подробностей о чтении файлов и других операциях ввода-вывода. Для чтения всего файла:

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
3 голосов
/ 23 февраля 2011

Для аналогичной программы на языке lua вы можете читать ее построчно и проверять, равна ли строка нулю (что возвращается, если строка EOF).

while true do
  local line = io.read()
  if (line == nil) then break end
end
...