QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 700|回复: 6

好久没用到, 忘了, 大家帮我回忆一下.

[复制链接]
发表于 2003-4-14 22:05:43 | 显示全部楼层 |阅读模式
在读取一组数据后, 用两种不同的方式将结果输出到同一个文本文件内. 每种方式有自己的函数来实现. 但我忘记应该如何实现了, 所以每次函数2输出的数据总会将函数1的数据给覆盖掉, 所以我不得不将他们输出到不同的文件了. 下面是我的代码, 请大家指点下.
[code:1]void SortedStuRecords::PrintByGrades() const
{
    // Postcondition:
    //   Print out student records by the letter grades, with the records
    //   of 'A' first, 'B' the second, ..., 'F' the last.

// Write your implementation here.
    ofstream outfile("gfile1.txt");
        if(!outfile)
                cerr<<"cannot open outfile!\n";
        else
        {
                for(char gradeTemp='A';gradeTemp<='E';gradeTemp++)
                {
                        for(int i=1;i<=length;i++)
                         if(data[i].letGrade==gradeTemp)
                                {  
                                        outfile<<data[i].lstName<<' '<<data[i].fstName<<"\t\t"
                                  <<data[i].ssn<<"   ";
                                    switch(data[i].rank)
                                        {
                                            case 1:outfile<<"Freshment";break;
                        case 2:outfile<<"Sofomore ";break;
                        case 3:outfile<<"Junior   ";break;
                        case 4:outfile<<"Senior   ";break;
                                        }
                                        outfile<<"   "<<data[i].letGrade<<endl;
                                }
                    outfile<<endl;
                }
        }
}

void SortedStuRecords::PrintByRanks() const
{
        // Postcondition:
    //   Print out student records by the ranks, with the records
    //   of 'Freshmen' first, 'sophomore' the second, 'junior' the
        //   third, and 'senior' the last.

// Write your implementation here.
    ofstream outfile("gfile2.txt");
        if(!outfile)
                cerr<<"cannot open outfile!\n";
        else
        {
                for(int rankTemp=1;rankTemp<=4;rankTemp++)
                {
                        for(int i=1;i<=length;i++)
                         if(data[i].rank==rankTemp)
                                {  
                                        outfile<<data[i].lstName<<' '<<data[i].fstName<<"\t\t"
                                  <<data[i].ssn<<"   ";
                                    switch(data[i].rank)
                                        {
                                            case 1:outfile<<"Freshment";break;
                        case 2:outfile<<"Sofomore ";break;
                        case 3:outfile<<"Junior   ";break;
                        case 4:outfile<<"Senior   ";break;
                                        }
                                        outfile<<"   "<<data[i].letGrade<<endl;
                                }          
                    outfile<<endl;
                }
        }
}[/code:1]
发表于 2003-4-15 22:01:46 | 显示全部楼层
what u need is a open&append, but what u use is open&write.
回复

使用道具 举报

 楼主| 发表于 2003-4-15 22:04:19 | 显示全部楼层
我知道啊, 我也这么分析的嘛? 那应该怎么办呢?
回复

使用道具 举报

发表于 2003-4-15 22:14:13 | 显示全部楼层
check the ofstream help, should be 'ofstream myFile("SomeFileName",ios::app);'
回复

使用道具 举报

 楼主| 发表于 2003-4-15 22:36:45 | 显示全部楼层
哦, 对了, 我真是个笨蛋!!!
回复

使用道具 举报

 楼主| 发表于 2003-4-15 23:29:53 | 显示全部楼层
以头撞墙50下, 以谢罪天下!

    
回复

使用道具 举报

发表于 2003-4-15 23:39:15 | 显示全部楼层
poor
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 05:56 , Processed in 0.038110 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表