【问题标题】:Lua not printing before file readLua在文件读取之前不打印
【发布时间】:2012-10-27 01:48:16
【问题描述】:

在运行打开和读取文件之前让 Lua 打印时遇到问题。这将打印字符串 "Reading File..." 和 "File Read!"但只有在它完成 getFileString() 函数之后。我希望它在运行之前打印“正在读取文件...”。我将其范围缩小到 file:read("*a") ,它弄乱了我(更大的)脚本中的所有打印。

function getFileString(path)

    local file, err = io.open(path, "r")
    local all = file:read("*a")
    file:close()

    return all

end

function main()

    local directory = "C:\\Documents and Settings\\All Users\\Documents\\"

    print("Reading File...")
    local file_all = getFileString(directory.."myFile.txt")
    print("File Read!\n")

end

main()

我是否功能化似乎也无关紧要。我应该提一下,这主要是因为我正在阅读一个 150MB 左右的文件。

【问题讨论】:

  • 你使用的是什么开发环境。在我使用的那个输出窗口仅在脚本结束或到达断点时刷新。
  • 是的,这肯定是 IDE 的问题(SciTE?)。 Lua 本身肯定会在读取文件之前执行第一个print
  • 是的,这可能是您的编辑器的缓冲问题。如果你运行 lua.exe 并调用 dofile("name_of_script.lua") - 我想你会得到你期望的结果。

标签: printing io lua


【解决方案1】:

我认为输出只是被缓冲了。尝试在打印前添加io.stdout:setvbuf('no'),这应该会关闭输出缓冲。

【讨论】:

    猜你喜欢
    • 2015-06-21
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2016-05-01
    • 2015-04-12
    • 1970-01-01
    • 2014-06-18
    相关资源
    最近更新 更多