Я работаю над проектом по обработке файлов. Идентификатор ввода пользователей, часы и сумма оплаты. Выход будет ID, часы, payrate и grosspay. Я получил эти части. Мне действительно нужна помощь в попытке и уловить, когда пользователи вводят нечисловое число, проект отклоняется и просит пользователей вводить снова. Вот что я получил до сих пор:Обработка файлов с использованием try-catch C++
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <iomanip>
#include "File.h"
#include <exception>
using namespace std;
void File::Create()
{
ofstream outClientFile("payroll.txt", ios::out);
if (!outClientFile)
{
cerr << "File could not be opened" << endl;
exit(EXIT_FAILURE);
}
cout << "Enter employee ID, hours and payrate" << endl
<< "Enter end-of-file to end input.\n? ";
while (cin >> id >> hours >> payrate)
{
try
{
outClientFile << id << ' ' << hours << ' ' << payrate << endl;
cout << "? ";
}
catch (exception elementException)
{
cerr << ("Invalid input. Try again") << endl;
}
}
}
void outputLine(int, float, float, float);
void File::Read()
{
ifstream inClientFile("payroll.txt", ios::in);
if (!inClientFile)
{
cerr << "File could not be opened" << endl;
exit(EXIT_FAILURE);
}
cout << left << setw(15) << "Employee ID" << setw(15) << "Hours" << setw(15) << "Payrate" << setw(15) << "Grosspay" << endl << fixed << showpoint;
while (inClientFile >> id >> hours >> payrate)
outputLine(id, hours, payrate, grosspay = hours * payrate);
}
void outputLine(int id, float hours, float payrate, float grosspay)
{
cout << left << setw(7) << id << setprecision(2) << setw(8) << " , " << setw(8) << hours << setprecision(2) << setw(7)
<< " , " << "$" << setw(7) << payrate << setprecision(2) << setw(7) << " , " << "$" << grosspay << right << endl;
}
TEST FILE
#include "File.h"
int main()
{
File myFile;
myFile.Create();
myFile.Read();
}
В чем ваша проблема? – Buddy
Например, когда я вводил нечисловую букву (A, B, C), программа останавливалась и переходила к функции 'Read()' –
, что мне нужно сделать, когда я ввожу букву, появляется сообщение об ошибке и попросите пользователей повторно ввести. –