freopen() を使用してテキスト ファイルと画面に出力しようとしていますが、ファイルへの出力しか実現していません。
プログラムの出力をファイルに簡単に保存して画面に印刷できるかどうか疑問に思っていましたか? 私はこれを別の方法で行っていたので、すべてのステートメントを 2 回印刷する必要がありました。1つはファイル用で、もう1つは出力用です。
注:私は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;
}