| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:关于文件的读与写
取消只看楼主 加入收藏
Tlife
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-9-3
结帖率:66.67%
收藏
 问题点数:0 回复次数:2 
关于文件的读与写
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
    ifstream infile("e:\\exams.dat",ios::in);
    ofstream outfile("e:\\score.dat",ios::trunc);
    char key[20],answer[5][30];
    int flag[5]={1,1,1,1,1},score[5];
    int i,j,len,s;
    string id[5];
    if (!infile)  { cerr<<"INFILE Open error"<<endl; exit(1); }
    if (!outfile) { cerr<<"OUTFILE open error"<<endl; exit(1); }
    infile.getline(key,21); //21
    for (i=0;i<5;i++)  //取值
    {
        infile>>id[i];
        infile>>answer[i];
    }
   
    for (i=0;i<5;i++) //判断是否20个,统计分数,是否有效
    {
        len=0;
        s=0;
        len=strlen(answer[i]);
        if(len<20) flag[i]=0;
        if(len>20) flag[i]=2;
        for (j=0;j<20;j++) if(answer[i][j]==key[j]) s++;        
        score[i]=s;
        for(j=0;j<20;j++)  
        {
            if(answer[i][j]>'f'||answer[i][j]<'a')     
            {
                flag[i]=3;
                break;
            }
               
        }
    }
    cout<<"The scores are listed as follows"<<endl;
    for (i=0;i<5;i++) //终端输出
    {
        if (flag[i]==1)    cout<<id[i]<<" "<<score[i]<<endl;
        if (flag[i]==0) cout<<id[i]<<" "<<"Too few answers"<<endl;
        if (flag[i]==2) cout<<id[i]<<" "<<"Too many answers"<<endl;
        if (flag[i]==3) cout<<id[i]<<" "<<"Invalid answers"<<endl;
    }
    outfile<<"The scores are listed as follows"<<endl;
    for (i=0;i<5;i++) //文件输出
    {
        if (flag[i]==1)    outfile<<id[i]<<" "<<score[i]<<endl;
        if (flag[i]==0) outfile<<id[i]<<" "<<"Too few answers"<<endl;
        if (flag[i]==2) outfile<<id[i]<<" "<<"Too many answers"<<endl;
        if (flag[i]==3) outfile<<id[i]<<" "<<"Invalid answers"<<endl;
    }
    outfile.close();
    infile.close();         
    return 0;
}
其中
exam.dat文件是
abcdefabcdefabcdefab
1234567 abcdefabcdefabcdefab
9876543 abddefbbbdefcbcdefac
5554446 abcdefabcdefabcdef
4445556 abcdefabcdefabcdefabcd
3332221 abcdefghijklmnopqrst

问题是我无法输出到文件中,这是怎么回事
求指导
搜索更多相关主题的帖子: include using 
2011-10-12 15:09
Tlife
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-9-3
收藏
得分:0 
我发现问题好像是在 infile.getline(key,21); 为什么不能用infile的getline?
2011-10-12 18:18
Tlife
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-9-3
收藏
得分:0 
问题是解决了,我将infile.getline(key,21); 换了个形式,但哪位高手能告诉我infile.getline(key,21);错在哪里?
2011-10-12 18:27
快速回复:关于文件的读与写
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029325 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved