Опитвам се да комбинирам SWI-prolog с QProcess. Така че вече мога да взаимодействам с prolog и да изпращам въпроси към него, но винаги получавам само първия отговор. Така че се опитах да изпратя такива символи като "n" или "r", които трябва да ми дадат следващия отговор на моята заявка като в черупката. Въпреки това не работи с QProcess. Ето моят код:
connect(&p,SIGNAL(readyReadStandardError()),this,SLOT(readStdError()));
connect(&p,SIGNAL(readyReadStandardOutput()),this,SLOT(readStdOut()));
p.setProcessChannelMode(QProcess::MergedChannels);
p.start("swipl",QIODevice::ReadWrite | QIODevice::Unbuffered);
if(!p.waitForStarted())
return;
p.write("consult(ws).\r\n"); //prolog program
if(!p.waitForBytesWritten())
{
p.close();
return;
}
p.write("test(X,Y).\r\n"); //query
if(!p.waitForBytesWritten())
{
p.close();
return;
}
p.write("n",1); //give me the next solution -> nothing happens
Вече не знам какво да правя. Как мога да получа следващите отговори или как мога да кажа на prolog да ми покаже всички отговори?