Я работаю над приложением заработной платы. Приложение должно позволить пользователю передавать сумму из учетной записи (учетная запись - это текстовый файл «магазин», который содержит значение 1000).Запись меток в файлы
Пользователь должен иметь возможность делать столько передач, сколько пожелает, без переустановки учетной записи. Каждая транзакция также должна быть записана по метке в отдельном файле, и это бит, с которым я борюсь.
В настоящее время с кодом, использующим временную метку, создается штраф в файле «время», за исключением 1040ED48, появляется до времени. Кто-нибудь знает, почему это? Также каждый раз, когда я делаю транзакцию, файл «time» перезаписывается новой меткой времени. Есть ли способ поместить каждую метку времени в другую строку в файле, чтобы она не была полностью перезаписана? Извините, если это не ясно.
#include <limits>
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <ctime>
#include <string>
int read_balance(void);
void write_balance(int balance);
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "How much do you wish to transfer?" << endl;
int amount = 0;
if (std::cin >> amount)
{
std::cout << "Transferred Amount:" << amount << "\n";
int balance = read_balance();
if (amount <= 0)
{
std::cout << "Amount must be positive\n";
}
else if (balance < amount)
{
std::cout << "Insufficient funds\n";
}
else
{
int new_balance = balance - amount;
write_balance(new_balance);
std::cout << "New account balance: " << new_balance << std::endl;
fstream infile;
infile.open("time.txt");
std::time_t result = std::time(nullptr);
std::string timeresult = std::ctime(&result);
infile << std::cout << timeresult << std::endl;
}
}
system("pause");
return 0;
}
int read_balance(void)
{
std::ifstream f;
f.exceptions(std::ios::failbit | std::ios::badbit);
f.open("shop.txt");
int balance;
f >> balance;
f.close();
return balance;
}
void write_balance(int balance)
{
std::ofstream f;
f.exceptions(std::ios::failbit | std::ios::badbit);
f.open("shop.txt");
f << balance;
f.close();
}
удалить 'std :: cout <<' from 'infile << std :: cout << timeresult << std :: endl;' – tumdum
Спасибо, что избавился от 1040ED48. Просто нужно выяснить, как записывать временные метки seperatley. – user3057816