【问题标题】:Love2d console on PyCharm only writes to console after closingPyCharm 上的 Love2d 控制台仅在关闭后写入控制台
【发布时间】:2019-03-07 12:34:01
【问题描述】:

我正在使用 PyCharm 社区版创建一个 love2d 应用程序。我创建了一个运行.bat 文件的热键以使用lovec.exe 运行它,它在应用程序运行时打开控制台,然后我创建了一个external tool 以通过键盘快捷键运行.bat文件,当我使用它时,控制台在 PyCharm 中打开,它不写任何东西,关闭应用程序后,所有应该写的东西都会出现,当我在 PyCharm 之外运行 .bat 文件时,它运行良好。

我想知道是否有明显的解决方法,或者只是如何通过外部工具在 pycharm 之外运行控制台。

【问题讨论】:

    标签: lua pycharm jetbrains-ide love2d


    【解决方案1】:

    这个问题是由于 Lua 延迟写入文件的方式,称为“缓冲”。要更改它,请将以下命令放在文件顶部:

    io.stdout:setvbuf( 'no' ) -- Switches buffering for stdout to be off
    

    阅读更多 Lua 的manual:

    file:setvbuf (mode [, size])

    设置输出文件的缓冲模式。共有三种可用模式:

    • "no":不缓冲;任何输出操作的结果都会立即出现。
    • "full":完全缓冲;仅当缓冲区已满或您明确flush 文件时才执行输出操作(请参阅io.flush)。
    • "line":行缓冲;输出被缓冲,直到换行符被输出或有来自某些特殊文件(例如终端设备)的任何输入。

    对于最后两种情况,size 指定缓冲区的大小,以字节为单位。默认是合适的大小。

    【讨论】:

      猜你喜欢
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多