PyCharm上的Love2d控制台仅在关闭后写入控制台

问题描述 投票:0回答:1

我正在使用PyCharm社区版创建一个love2d应用程序。我创建了一个运行.bat文件的热键,用lovec.exe运行它,当应用程序运行时打开控制台,然后我创建了一个external tool通过键盘快捷键运行.batfile,当我使用它时,控制台打开在PyCharm中,它没有写任何东西,并且在关闭应用程序之后,所有本来应该写的内容出现了,当我在PyCharm之外运行.bat文件时它运行完美。

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

lua pycharm jetbrains-ide love2d
1个回答
1
投票

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

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

阅读更多Lua的manual

file:setvbuf (mode [, size])

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.