我想打印文本(从之前打开的文件中)直到我按下键def kl_divergence(p, q):
return tf.reduce_sum(p * tf.log(p/q))
。我尝试过的所有方法都会暂停打印出来的文字。有没有办法在C中寻找按键时打印文本?
前:
q
它只在您输入字符后打印提示。我希望它继续持续打印提示。
解决了我发现的这个网页的问题:http://cc.byexamples.com/2007/04/08/non-blocking-user-input-in-loop-without-ncurses/
答案 0 :(得分:1)
您可以创建子流程。
答案 1 :(得分:0)
根据Wait for input for a certain time
中jave.web
的回复
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include<unistd.h>
#include<windows.h>
char waitForCharInput( int seconds ){
char c = '_'; //default return
while( seconds != 0 ) {
if( _kbhit() ) { //if there is a key in keyboard buffer
c = _getch(); //get the char
break; //we got char! No need to wait anymore...
}
Sleep(1000); //one second sleep
--seconds; //countdown a second
}
return c;
}
int main()
{
FILE *fp = fopen("_filename_","r");
char buffer[255];
while(fgets(buffer, 255, (FILE*) fp))
{
printf("%s\n", buffer);
char response = waitForCharInput(1);
if(response == 'q')
break;
}
}
答案 2 :(得分:0)
在这里找到我的答案:http://cc.byexamples.com/2007/04/08/non-blocking-user-input-in-loop-without-ncurses/
我理解我的问题过于宽泛,但这就是我解决问题的方法。