io.write在嵌套if和for循环中不起作用

时间:2013-09-24 12:03:36

标签: loops lua nested output

有人可以解释一下当我删除行

时io.write无效的原因

io.write(inshort ..“\ n”)

io.output没有第二个定义。 代码是否嵌套,io.output在某些状态下无效?

我知道doSomething被正确调用了......

function findpos(arg0, arg1,argf)

    io.input(arg0)
    io.output("that.txt")
    posicounter =0
    posibuffer=""
    if not arg0 then return 99 end
    counter = 1
    while true do
        local line = io.read("*line") 
        if line == nil then break end
        for k, searchstring in ipairs(arg1) do
            found = string.find(line, searchstring)           
            if found ~=nil then 
                inshort = string.sub(line, found) 
                io.write(inshort.."\n")
                if(inshort==posibuffer) then
                posicounter=posicounter+1
                elseif posicounter >0 then
                    io.write("before")
                    node = doSomething()
                    io.write("after")
                    posicounter=0
                else 
                    posicounter=0
                    posibuffer=inshort
                end
            end
            argf(timestamp, string.sub(line, 24))       
            counter = counter +1  
        end
  end

1 个答案:

答案 0 :(得分:2)

请注意,您要移除的行是唯一输出\n字符的行。您可能遇到的问题是您的环境中的i / o系统(操作系统,终端或shell)推迟输出,直到它看到\n字符。即,输出是行缓冲的。