Я надеюсь, что кто-то может мне помочь, и большое спасибо всем, у кого есть идея :)
этот вопрос относится к другому для того же проекта, но тематически немного отличается, поэтому отделил его.
Проект вкратце:
Пролог - это решение существующей двумерной головоломки, для которой я написал логику. Visual Studio (VS) Cli Визуализировать головоломки / частей. И наконец, интерфейс должен быть использован для отображения процесса решения (через пролог трассировки или «write ()») шаг за шагом в VS
Цель :
Получите выходные данные из кода Prolog, включая выходные данные «write ()» и / или tracerout после вызова метода «PL_call_predicate (...)» в c ++ через интерфейс SWI-Prolog, и сохраните его, например, в. строка переменная в C ++.
Что я пробовал:
Я создаю программу, которая должна визуализировать «процесс решения» головоломки. Решение сделано в прологе. Для визуализации я интегрирую пролог в Visual Studio. Теперь я пытаюсь получить не только Результат от Пролога (это работает благодаря Яну Вилемейкеру), но и вывод трассировки каждого шага. Я попытался перенаправить консольные выходы для cout
и Console::WriteLine
и несколько других связанных вещей, и я получаю вывод, отображаемый в окне консоли
НО ПРОБЛЕМА :
я не получаю вывод от пролога, отображаемого в том же окне консоли: O ...
Я публикую еще один вопрос Вы можете прочитать для дополнительной информации. Это было связано с извлечением Результата PL_call_predicate()
; возвращение двух списков с идентификатором головоломки и поворотом состояния Ян Вилемейкер предлагает изменить SWI-Stream.h для перенаправления ввода-вывода, но я не знаю, с чего начать ...
Окончательно
Я хочу собрать вывод трассировки пролога в переменную c ++. Это я могу позже (или лучше во время выполнения) интерпретировать и отображать процесс решения шаг за шагом в Visual Studio, где я отображаю 2D-головоломку.
В настоящее время я могу извлечь результат Prolog и все выходные данные консоли НО , а не вывод trac из "PL_call_predicate ()".
У кого-нибудь есть идеи, как это сделать ??
Я прошу прощения за орфографические ошибки. Это не мой естественный язык.