У меня есть кусок исходного кода для консольного приложения, которое использует cin и cout для ввода и вывода.
Теперь я хочу интегрировать этот материал в свою собственную программу и делать вещи «автоматически», как при генерации / симуляции времени выполнения 'input' и захвата вывода в строку для дальнейшего преобразования.
По сути, для ввода я хочу сделать такие вещи, как
myCinReplacement->AddInput("Hello\n");
myCinReplacement->AddInput("This is some random input\n");
Изатем позже, если другая часть программы считывает данные из буфера ввода через cin, она должна получить введенный мною ввод (или подождать, пока что-то будет добавлено, как это происходит в реальном окне консоли).
Что-то похожее для вывода, если код
cout << "foo" << "bar";
должен добавить «foo» и «bar» к какой-то строке, к которой я могу получить доступ в другом месте.
Я довольно неопытен свесь бизнес streambuf (никогда не создавал консольных приложений в c ++), и пока что кажется, что мне нужно переопределить полный объект istream и ostream.Но я с трудом могу поверить, что нет более легкого решения этой проблемы?