ОТВЕТ
Убедитесь, что вы корректно очищаете выходные буферы в вашей программе на С ++. По моему опыту это иногда помогает вставить дополнительные команды очистки (не только команды конца строк) в ваш код:
std::cout << std::endl;
Примечание
Вы также можете попытаться назвать свою программу так:
[status,result] = dos('myprog.exe','-echo')
[status,result] = system('myprog.exe','-echo')
Справка по matlab гласит: «echo» принудительно выводит вывод в командное окно, даже если он также присваивается переменной. »
Однако это может не сработать, потому что (опять же, помощь по методу MATLAB):
"Консольные программы никогда не выполняются в фоновом режиме. Кроме того, программное обеспечение MATLAB всегда ожидает закрытия канала stdout, прежде чем продолжить выполнение." Это означает, что matlab может подождать, пока ваша программа завершит выполнение, прежде чем покажет вам консольный вывод. В этом случае вы ничего не можете с этим поделать.