Loop and fstream: Removing the user from the equation.

I have an exercise for class which I pasted below. I created a loop that works fine. It ask the user to input the number of employees, I do not feel comfortable letting a user type a number when there is a possibility of entering the wrong number. Is it Possible to make the program count the lines in the file and use that as the numberEm variable instead of the user input the number?

Three employees in a company are up for a special pay increase. You are
given a file, sayCh3_Ex7Data.txt, with the following data:
Miller Andrew 65789.87 5
Green Sheila 75892.56 6
Sethi Amit 74900.50 6.1
Each input line consists of an employee’s last name, first name, current salary,
and percent pay increase. For example, in the first input line, the last name of
the employee is Miller,thefirstnameisAndrew, the current salary is
65789.87, and the pay increase is 5%. Write a program that reads data from
the specified file and stores the output in the file Ch3_Ex7Output.dat.
For each employee, the data must be output in the following form:
firstName lastName updatedSalary. Format the output of decimal
numbers to two decimal places

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
  /*
Henry Gutierrez
CSIT 139
Chapter 3 Exercise 5
*/

#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>

using namespace std;

int main()
{
	
						//Declare variables
ifstream inFile;
ofstream outFile;

string firstName, lastName;

double currentPay, upDatedPay, raise;

int counter = 0;

int numberEm;

						//Process
inFile.open("Ch3_Ex7Data.txt");
outFile.open("Ch3_Ex7Output.dat");

outFile << fixed << showpoint;
outFile << setprecision(2);

cout << "Please Enter Number of Employees"<<endl;
cin >> numberEm;

						//Looop
while (counter < numberEm)
{
inFile >> firstName >> lastName >> currentPay >> raise;

raise = raise / 100;
upDatedPay = currentPay * raise;
outFile << firstName << " " << lastName << " $"<< currentPay + upDatedPay << endl << endl;

counter++;

}

inFile.close() ;
outFile.close() ;

system ("pause");
	return 0;
}
Last edited on
Topic archived. No new replies allowed.