Перенаправить стандартный вывод в буфер, не используя> - PullRequest
1 голос
/ 16 августа 2011

Я написал свою реализацию printf - myPrintf, которая печатает на стандартный вывод.Я хочу убедиться, что он работает нормально. Чтобы проверить правильность напечатанного вывода, я хочу сравнить его с символом, который я ожидаю получить.Как я могу написать код для перенаправления stdout в буфер, не используя>.

Я могу использовать только printf!

1 Ответ

7 голосов
/ 16 августа 2011

Вы можете перенаправить буфер couts, установив его rdbuf() в файл, который вы открыли.

Странно, C ++ и только printf, но неважно.

Также возможно перенаправитьstdout в C.

Вот один из способов сделать это: https://rydow.wordpress.com/2007/10/26/c-code-to-redirect-stdout/

Это включает dup и dup2.

Также существует эта опция ( Перенаправление stdin и stdout из C ) с использованием freopen.

...