//Listing 14.04 Processing Enviromental Data
#include <fstream> // ifstream, ofstream, seekg()
#include <cassert> // assert()
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
char input_file_name[80] = "";
int count = 0; // number of values
double new_value = 0, // value being processed
average = 0.0, // average
sum = 0.0; // running total
cout<<"Enter the name of the input file: ";
cin >>input_file_name; // get name of input file
ifstream fin(input_file_name); // establish connection,
assert( fin.is_open() ); // and check for success
while(true){
fin >> new_value; // read a value
if ( fin.eof() ) // if eof, quit
break;
++count; // update: count
sum += new_value; // sum
}
if(count > 0)
average = sum / count;
fin.clear(); // clear eof bit
fin.seekg(0, ios::beg); // reset read position
while (true) {
fin >> new_value; // read a value
if( fin.eof() ) // if eof, quit
break;
cout << setw(10) << new_value << " : "
<< setw(10) << new_value - average << endl;
}
fin.close(); // close the connection
return 0;
}