繁体   English   中英

Python程序未收到printf的输出

[英]Python program not receiving output of printf

对于一项任务,我必须做一个Quorador游戏,该游戏必须与用python编写的裁判沟通,以便两个Quorador客户可以相互对抗,由于某种原因,我在python实例未收到的c程序中打印f,或者我的C程序没有通过scanf从python裁判那里收到任何信息

我办裁判的方式是这样的

./referee.py --black ./quoridor  --white ./quoridor 

它发送到./quoridor的第一个命令是命令“ name”,并且quoridor必须以其名称作为响应,如果我运行./quoridor并键入name,它只能找到,然后以该名称作为响应。 但这不是裁判的情况。

char command[MAX_COM_SIZE];
scanf("%s",command);
if(strcmpIgnoreCase(command,"name")==0){
    printf("= Athinaios\n\n");
}

教授为我提供了一个Quorador的二进制文件,该二进制文件运行良好,并且在终端上的行为与我的行为完全相同

代码中的printf()调用正确地将格式化后的字符串放入stdout。 但是,问题在于C标准库文件描述符已缓冲,因此直到缓冲区已满或显式刷新后,输出才会出现。

要刷新输出,请使用fflush

printf("= Athinaios\n\n");
fflush(stdout);

或者,在开始时禁用缓冲:

setbuf(stdout, NULL);

在这种情况下,没有理由进行缓冲I / O。 我会用写电话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM