Sto cercando di usare freopen() per stampare su un file di testo e sullo schermo, ma sto solo ottenendo la stampa su un file.Uso di freopen() per stampare su file e schermo
Mi chiedevo se fosse facile salvare i programmi in uscita su un file e stamparlo sullo schermo? Perché l'ho fatto funzionare in un altro modo, ma alla fine ho dovuto stampare ogni dichiarazione due volte. Uno è per il file l'altro solo per l'output.
Nota: sono nuovo di C++ e sto cercando di apprenderlo per un corso nel prossimo semestre in modo tale che siano necessarie risposte dirette visto che ho già cercato online e non sono riuscito a trovare risposte semplici a questa soluzione.
Ecco quello che ho finora:
#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;
}
+1 per una domanda ben formata. –
Dovrai ancora scrivere tutto due volte. freopen (..., stdout) SOSTITUISCE la destinazione corrente di stdout con il file (handle) del primo argomento di freopen().Un file (o flusso) in C/C++ può andare solo in un posto. Come principiante, non sono sicuro che ci sia un modo FACILE di scrivere codice che produca in due posizioni. Il modo in cui lo farei è implementando la mia variante di ostream che scrive in due posti contemporaneamente. Ma non è quasi una codifica per principianti. –