Тема: Вивід з файлу
Доброго вечора, маю отаке завдання: Написати програму, яка буде додавати у текстовий файл введену з
клавіатури інформацю. Слід передбачити можливість вибору
користувачем режиму роботи: додавання чи відображення даних (меню).
Забезпечити зберігання даних у файлі у вигляді структурованої таблиці за
допомогою засобів форматування. При виводі на екран має відображатися
шапка з інформацією в якій колонці які дані відображаються. У файлі має
зберігатися лише структурована інформація без шапки.
З клавіатури вводиться прізвище, ім‘я і розмір
депозиту, а у файл виводиться прізвище, ім‘я і розмір
депозиту за 1, 3, 6 і 12 місяці з урахуванням ставки по
депозитам на рівні 4% на місяць.
написав програму:
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
struct Deposit {
string surname;
string name;
double amount;
};
const double vidsotok = 1.04;
void addDataToFile(fstream& file, const Deposit& deposit);
void displayDataFromFile(fstream& file);
void addDataToFile(fstream& file, const Deposit& deposit) {
file << left << setw(20) << deposit.surname
<< left << setw(20) << deposit.name
<< right << setw(10) << deposit.amount;
double deposit1Month = deposit.amount * vidsotok;
double deposit3Months = deposit1Month * pow(vidsotok,3);
double deposit6Months = deposit1Month * pow(vidsotok, 6);
double deposit12Months = deposit1Month * pow(vidsotok, 12);
file << right << setw(10) << deposit1Month
<< right << setw(10) << deposit3Months
<< right << setw(10) << deposit6Months
<< right << setw(10) << deposit12Months << endl;
}
void displayDataFromFile(fstream& file) {
string surname;
string name;
double amount;
double deposit1Month;
double deposit3Months;
double deposit6Months;
double deposit12Months;
cout << left << setw(20) << "Surname"
<< left << setw(20) << "Name"
<< right << setw(10) << "Amount"
<< right << setw(10) << "1 Month"
<< right << setw(10) << "3 Months"
<< right << setw(10) << "6 Months"
<< right << setw(10) << "12 Months" << endl;
}
int main() {
fstream outFile("deposits.txt", ios::app);
fstream inFile("deposits.txt");
int choice;
bool exitMenu = false;
do {
cout <<"Select an option:\n"
<< "1. Add data\n"
<< "2. Display data\n"
<< "3. Exit\n";
cin >> choice;
switch (choice) {
case 1:
{
Deposit deposit;
cout << "Enter surname: ";
cin >> deposit.surname;
cout << "Enter name: ";
cin >> deposit.name;
cout << "Enter amount: ";
cin >> deposit.amount;
addDataToFile(outFile, deposit);
break;
}
case 2:
{
displayDataFromFile(inFile);
break;
}
case 3:
{
exitMenu = true;
break;
}
default:
{
cout << "Invalid option\n";
}
}
}
while (!exitMenu);
outFile.close();
inFile.close();
return 0;
}
У блоці displayDataFromFile, потрібно зробити щоб воно читало з файлу та виводило на екран всі дані, спробував багато методів котрі знав, getline та простим читанням cin, нічого не виходило, підкажіть будь ласка як ще це можна зробити