SWI-prologをQProcessと組み合わせようとしています。だから私はすでにプロローグと対話してそれに質問を送ることができますが、私は常に最初の答えしか得られません。そこで、シェルのようにクエリの次の回答が得られる「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
もうどうしたらいいのかわからない。次の回答を得るにはどうすればよいですか、またはすべての回答を表示するようにプロローグに指示するにはどうすればよいですか?