score.txt
score.txt
Xu Lisa 60 70 80 90 50 40 30 20 10 0
Cheng Kevin 1 2 3 4 5 6 7 8 9 10
Coco Li 11 22 33 44 55 66 77 88 99 100
scoreAvg.txt
Xu Lisa 60 70 80 90 50 40 30 20 10 0 average: 45
Cheng Kevin 1 2 3 4 5 6 7 8 9 10 average: 5.5
Coco Li 11 22 33 44 55 66 77 88 99 100 average: 59.5
程序:
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
void outAverage(ifstream&, ofstream&);
int main( )
{
ifstream inStream;
inStream.open("/Users/br/Documents/C:C++/character/character/score.txt");
if (inStream.fail()) {
cout << "inStream opening failed.";
exit(EXIT_FAILURE);
}
ofstream outStream;
outStream.open("/Users/br/Documents/C:C++/character/character/scoreAvg.txt");
if (outStream.fail()) {
cout << "outStream opening failed.";
exit(EXIT_FAILURE);
}
outAverage(inStream, outStream);
inStream.close();
outStream.close();
return 0;
}
void outAverage(ifstream& inStream, ofstream& outStream)
{
double avg, sum = 0, score;
char c;
int count = 0;
while (! inStream.eof()) {
inStream.get(c);
if (c == '\n') {
avg = sum / count;
outStream << "\taverage: " << avg;
sum = 0;
count = 0;
}
if (! isdigit(c))
outStream << c;
else {
inStream.putback(c);
inStream >> score;
outStream << score;
sum += score;
count++;
}
}
avg = sum / count;
outStream << "\taverage: " << avg << "\n";
}
程序3
/*
score.txt
Xu Lisa 60 70 80 90 50 40 30 20 10 0
Cheng Kevin 1 2 3 4 5 6 7 8 9 10
Coco Li 11 22 33 44 55 66 77 88 99 100
scoreAvg.txt
Xu Lisa 60 70 80 90 50 40 30 20 10 0 average: 45.00
Cheng Kevin 1 2 3 4 5 6 7 8 9 10 average: 5.50
Coco Li 11 22 33 44 55 66 77 88 99 1e+02 average: 59.50
*/
#include <fstream>
#include <iostream>
#include <cstdlib>
#include <cctype>
#include <iomanip>
using namespace std;
void outAverage(ifstream&, ofstream&);
int main( )
{
ifstream inStream;
inStream.open("/Users/br/Documents/C:C++/character/character/score.txt");
if (inStream.fail()) {
cout << "inStream opening failed.";
exit(EXIT_FAILURE);
}
ofstream outStream;
outStream.open("/Users/br/Documents/C:C++/character/character/scoreAvg.txt");
if (outStream.fail()) {
cout << "outStream opening failed.";
exit(EXIT_FAILURE);
}
outAverage(inStream, outStream);
inStream.close();
outStream.close();
return 0;
}
void outAverage(ifstream& inStream, ofstream& outStream)
{
double avg, sum = 0, score;
char c;
int count = 0;
while (! inStream.eof()) {
inStream.get(c);
if (c == '\n') {
avg = sum / count;
outStream.setf(ios::fixed);
outStream.setf(ios::showpoint);
outStream << "\taverage: " << setprecision(2) << avg;
outStream.unsetf(ios::fixed);
outStream.unsetf(ios::showpoint);
sum = 0;
count = 0;
}
if (! isdigit(c))
outStream << c;
else {
inStream.putback(c);
inStream >> score;
outStream << score;
sum += score;
count++;
}
}
outStream.setf(ios::fixed);
outStream.setf(ios::showpoint);
avg = sum / count;
outStream << "\taverage: " << setprecision(2) << avg << "\n";
}