2014-04-07 2 views
0

У меня есть два консольных выхода двух разных скриптов. Я хочу сравнить эти выходы друг с другом для поиска сохраненных букв на обоих выходах вместе с их позицией на выходе. Для этого я пытаюсь сделать это, я хочу сохранить оба консольных выхода в двух разных текстовых файлах и проверить эти два файла для сохраненных букв и их относительных позиций.Как сохранить вывод консоли C++ в текстовом файле?

Я иду по правильному пути или их может быть другим вариантом для сравнения выходов. Если да, укажите способ сохранения выходов консоли в текстовых файлах. И если нет, то предоставим другой точный метод сравнения выходов консоли.

+0

неясно, нет образца кода, а затем есть следующее: http://stackoverflow.com/questions/3270847/how-to-write-console-output-to-a-text-file-in-cpp – PatrickT

ответ

2

Вы можете запускать свои скрипты из программы на C++, например. с POPEN (3) или пользовательским Exec + вилкой в ​​зависимости от того, требуется ли вам иметь дело с проблемами последовательности эвакуации и т.д.

для записи в файл и

читать позже.

1

Вы не можете напрямую записывать вывод консоли в файл. Что вы можете сделать, это изменить свой код, чтобы каждый раз, когда вы пишете на консоль, вы также записываете тот же вывод в FILE через fopen().

Скажите, например, что вы должны были распечатать Output, вы можете сохранить это в string/char[] и записать это в файл.

+1

I лично не предлагал бы fopen, а собственно C++ io-потоки в программе на C++. – lpapp

2

Вы можете использовать freopen для перенаправления вывода консоли в файл, а затем использовать другое программное обеспечение, такое как WinMerge, для сравнения результатов вывода.

Например:

freopen("output.txt", "w", stdout); 

Тогда все, что вы печатаете на консоль, например, при использовании printf будет выводиться на output.txt.

+0

Я бы не предлагал printf, freopen и т. Д. В программе на C++ вместо iostream. – lpapp

Смежные вопросы