Вывод в файл и на консоль одновременно - C (СИ)
Формулировка задачи:
Привет Всем!
Подскажите как можно, и можно ли вообще, организовать вывод одновременно в файл и на консоль одной и тойже строки?
Хочу вызывать одну fprintf() типа как ниже:
второй вариант (Но что-то он мне не нравится )
Прошу помоши, а то что-то не соображаю сегодня
Листинг программы
- int main()
- {
- FILE *fout = fopen ( "outTest.txt", "a+" );
- FILE * MyStream;
- // MyStream = fout = stdout; тут получим MyStream = stdout :( А Как по другому
- fprintf ( MyStream, " bla bla bla "); // в результате строка должна писаться и в "outTest.txt" и на консоль
- }
Листинг программы
- void DoubleOut ( FILE * file, const char * str )
- {
- fprintf ( stdout, "%s", str );
- fprintf ( file, "%s", str );
- }
- int main()
- {
- FILE *fout = fopen ( "outTest.txt", "a+" );
- DoubleOut ( fout, " bla bla bla " );
- }
Решение задачи: «Вывод в файл и на консоль одновременно»
textual
Листинг программы
- #include <iostream>
- #include <fstream>
- int main()
- {
- std::fstream ofs("output.txt", std::ios::in | std::ios::out);
- //Вывод в файл
- for(size_t i=0; i<5; ++i)
- ofs << i << std::endl;
- //Установка позиции чтения на начало файла
- ofs.seekp(std::ios::beg);
- //Вывод содержимого всего файла в консоль
- std::cout << ofs.rdbuf();
- system("pause");
- return EXIT_SUCCESS;
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и выводом в консоль
- Создание объекта std::fstream для открытия файла
output.txt
в режиме чтения и записи - Цикл for для записи 5-ти чисел в файл
output.txt
- Установка позиции чтения на начало файла
- Чтение содержимого файла
output.txt
и вывод его в консоль - Блокировка программы до нажатия клавиши
- Возврат успешного выполнения программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д