Запись вывода в текстовый файл не показывает ввод
У меня есть программа на C++, которая должна считывать ввод из текстового файла и записывать вывод в текстовый файл. Я хотел попробовать достичь этого без добавления дополнительного кода, поэтому в командной строке я пишу
project.exe<input.txt>output.txt
Это работает, но в файле ouput.txt я не вижу никаких входных данных. Это просто говорит что-то вроде:
Enter option:
option output
Я мог бы просто добавить std::cout<<option;
после каждого ввода, но есть ли способ показать вход без добавления дополнительного кода?
1 ответ
Вы пытаетесь найти способ сделать оболочку Windows копировать или клонировать ваш входной поток, чтобы после того, как он был использован вашей программой, он также был отправлен в выходной поток. Есть некоторые проблемы с этим:
- Он был использован вашей программой!
- Ваша программа имеет контроль над потоком вывода
Я не говорю, что это невозможно (в Linux какая-то смесь с tee
может быть возможно), но если это возможно, то это будет хакерским и, конечно, нетрадиционным.
Честно говоря, я бы придерживался вашей собственной идеи просто отразить входной поток вывода в самой программе. Если кто-то использует вашу программу в интерактивном режиме, это будет выглядеть странно для них, но вы можете предоставить переключатель командной строки для переключения этой функции. Это будет аналогично дополнительной функции PuTTY "локальное эхо", например.