// average6.cpp
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char** argv)
{
// Check command-line arguments and
// display instructions if necessary:
if ( argc < 2 )
{
cout << "This program averages a sequence of "
<< "integers in a file specified" << endl;
cout << "as a command-line argument." << endl;
return 0;
} // if
// Prepare to read from file:
ifstream inputFile;
inputFile.open(argv[1]);
// Check whether file exists and is readable:
if ( !inputFile )
{
cout << "Can't read file "
<< argv[1] << "." << endl;
return 1;
} // if
// Count of the number of numbers to be averaged:
int numberOfNumbers = 0;
// Cumulative sum:
int sum = 0;
// Input and echo numbers to be averaged,
// and add them to cumulative sum:
while ( true )
{
// Input and echo the current number:
int number;
inputFile >> number;
if ( !inputFile )
break;
cout << number << endl;
// Add current number to cumulative sum
// and update count of numbers:
sum = sum + number;
numberOfNumbers++;
} // while
// Compute the average and output the result:
float average = ( numberOfNumbers == 0 )
? 0
: (float) sum / numberOfNumbers;
cout << endl << "The average is: "
<< average << "." << endl;
// Print good-bye message:
cout << "Thank you for using " << argv[0] << "." << endl;
return 0;
} // function main