Использование freopen () для печати в файл и на экран

Я пытаюсь использовать freopen () для печати в текстовый файл и на экран, но я достигаю только печати в файл.

Мне было интересно, можно ли было легко сохранить вывод программ в файл и распечатать его на экране? Потому что у меня это работало по-другому, но мне пришлось распечатывать каждое утверждение дважды. Один для файла, другой только для вывода.

Примечание: я новичок в C ++ и пытаюсь выучить его на уроке в следующем семестре, поэтому нужен прямой ответ, так как я уже посмотрел онлайн и, кроме того, не смог найти простых ответов на это решение.

Вот что у меня так далеко:

#include<iostream>
#include<time.h>
#include<stdlib.h>
#include<fstream>

using namespace std; 

void menu(){
    cout << "\t********************************************************\n"
         << "\t* Welcome to slot machine.                             *\n"
         << "\t* Would you like to play? (1 to play, 2 not to play)   *\n"
         << "\t********************************************************\n\n";
    return;
}

void update(int arr[], int &token) {
    if (arr[0]==arr[1] && arr[1]==arr[2]) {
        token+=4;
        cout << "You win\n\n";
    } else if (arr[0]==arr[1] || arr[1]==arr[2] || arr[0]==arr[2]) {
        token+=1;
        cout << "You got two out of three\n\n";
    } else {
        token-=1;
        cout << "You lose\n\n";
    }
}

int main() {
    freopen("file.txt", "w", stdout);
    int x, arr[3], token=4;
    srand(time(0));
    menu();
    cin >> x;
    while(token!=0) {
        cout << "You have " << token << " tokens\n\n"
             << "Pull? (1 to pull, 2 not to pull)\n\n";
        cin>>x;
        if(x==1) {
            for(int i=0; i<3; i++) {
                arr[i]=1+rand()%10;
            }
            cout << "\t\t";
            for(int j=0; j<3; j++) {
                cout << arr[j] << " ";
            }
            cout << "\n\n";
            update(arr,token);
        }
        else{  
            cout << "OK\n";
        }
    }
    cin.get();
    return 0;
}

Ответы на вопрос(2)

Ваш ответ на вопрос