Вывод в файл и на консоль одновременно - 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с файлами и выводом в консоль
  2. Создание объекта std::fstream для открытия файла output.txt в режиме чтения и записи
  3. Цикл for для записи 5-ти чисел в файл output.txt
  4. Установка позиции чтения на начало файла
  5. Чтение содержимого файла output.txt и вывод его в консоль
  6. Блокировка программы до нажатия клавиши
  7. Возврат успешного выполнения программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы