Я начинаю думать, что это совершенно невозможно ...Сохранить все консоли из данных в новый текстовый файл C++
У меня есть небольшая консольная программа, которая в основном небольшой калькулятор, как только пользователь сделал один вычисление и результат, тогда программа затем петли, чтобы позволить пользователю выполнять другой расчет. Пока пользователь продолжает выбирать другой расчет, программа никогда не заканчивается.
Теперь я хотел бы сохранить ВСЕ данные, отображаемые в консоли, в новый текстовый файл на рабочем столе.
У меня есть набор функций, объявляющих полный путь к файлу и имя файла в строку, если это возможно, я хотел бы, чтобы программа сохранила текстовый файл для этого точного пути и имени файла. Если это невозможно, рабочий стол пользователя будет работать нормально.
До сих пор я пробовал Fstream, но не повезло; может быть, я что-то делаю неправильно? Я как бы новичок в этом, поэтому любая помощь будет очень признательна.
Ниже приведен код программы.
#include <iostream>
#include <ctime>
#include <string>
#include <sstream>
#include <windows.h>
#include <Lmcons.h>
using namespace std;
int main()
{
//creates file name
char timeNow[20];
time_t now = time(NULL);
strftime(timeNow, 20, "%d.%m.%Y %H%Mhrs", localtime(&now));
// Creates desktop file path that includes the users user name
char username[UNLEN+1];
DWORD username_len = UNLEN+1;
GetUserName(username, &username_len);
stringstream user;
string UserName;
user << username;
user >> UserName;
string pathName = "c:/users/" + UserName + "/desktop/" + timeNow + ".txt";
// Declare Variables
int suA, splitA, cornerA, streetA, sixlineA, payout;
double Cvalue = 1;
double cash;
int winnum = 0;
int table = 0;
std::string Another ("y");
// Programme Header
cout << "Roulette Bet Calculator & Payout Log!" << endl;
cout << "By Chris McCarthy" << endl << endl;
//Bet Calculator Loop
while (Another == "y") {
cout << "Table no: AR";
cin >> table;
cout << "Winning Number? ";
cin >> winnum;
char timeNow[20];
time_t now = time(NULL);
strftime(timeNow, 20, "%H:%M:%S %d/%m/%Y", localtime(&now));
cout << timeNow << endl << endl;
cout << "Please enter the chip value? " << char(156);
cin >> Cvalue;
cout << "Please enter the amount of Straight Ups? ";
cin >> suA;
cout << "Please enter the amount of Splits? ";
cin >> splitA;
cout << "Please enter the amount of Corners? ";
cin >> cornerA;
cout << "Please enter the amount of Streets? ";
cin >> streetA;
cout << "Please enter the amount of Six Lines? ";
cin >> sixlineA;
cout << endl;
// Calculates then writes the final payout and cash value
payout = (suA * 35) + (splitA * 17) + (cornerA * 8) + (streetA * 11) + (sixlineA * 5);
cash = Cvalue * payout;
cout << "The payout is: " << payout << endl;
cout << "The cash value of the payout is: " << char(156) << cash << endl << endl;
// Adds another bet or terminates programme
cout << "Add another bet? (y/n) ";
cin >> Another;
cout << "____________________________________________________________" << endl << endl;
}
return 0;
}
_ «До сих пор я пробовал Fstream, но мне не повезло, может быть, я делаю сом что-то не так? »_ Да. Вы сделали что-то не так. Никто не может сказать больше, так как никто не знает, что именно вы пробовали. –
Хорошо. Может быть, очевидно, что я сделал что-то не так. Я сбил это с ума и в принципе ничего не придумал. Возможно ли это? –
_ «До сих пор я пробовал Fstream, но не повезло» _ - не очень хорошая постановка проблемы. Основываясь на ответе, который вы приняли, у вас есть ошибки в коде, но вы не вызвали их и другие проблемы, связанные с вашей проблемой. Это важно, когда вы публикуете SO, потому что мы не будем пытаться разбираться в разных вещах или изучать ваш код, не зная, что искать. –