I/O Stream<文件格式化输入输出>

来源:互联网 发布:淄博seo推广优化 编辑:程序博客网 时间:2024/05/17 07:51

score.txt

score.txtXu Lisa 60 70 80 90 50 40 30 20 10 0Cheng Kevin 1 2 3 4 5 6 7 8 9 10Coco Li 11 22 33 44 55 66 77 88 99 100scoreAvg.txtXu Lisa 60 70 80 90 50 40 30 20 10 0    average: 45Cheng Kevin 1 2 3 4 5 6 7 8 9 10    average: 5.5Coco 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.txtXu Lisa 60 70 80 90 50 40 30 20 10 0Cheng Kevin 1 2 3 4 5 6 7 8 9 10Coco Li 11 22 33 44 55 66 77 88 99 100scoreAvg.txtXu Lisa 60 70 80 90 50 40 30 20 10 0    average: 45.00Cheng Kevin 1 2 3 4 5 6 7 8 9 10    average: 5.50Coco 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";}
0 0
原创粉丝点击