| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1004 人关注过本帖
标题:fscanf,fprintf
取消只看楼主 加入收藏
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
结帖率:96.67%
收藏
已结贴  问题点数:10 回复次数:13 
fscanf,fprintf
如何将一个EXAM.TXT文件里的数据读入到REPORT.TXT中
用fscanf 和fprintf函数
EXAM.TXT 中的数据格式为
5   a b c d e
101 a c d e f
121 a b c d f
123 a e f g f
搜索更多相关主题的帖子: fprintf fscanf 
2010-10-07 22:38
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
坐等高手解答
2010-10-07 22:38
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
输出后文件中的格式也是一样的
2010-10-07 22:39
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
大家帮帮忙
。。。。。。
2010-10-07 22:43
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
各位大大快点啊
2010-10-07 22:50
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
#include<stdio.h>
#define shuru "examdat.txt"
#define shuchu "report.txt"
#define q_num 5
void score(char c[],int *x,int missnum[]);
char ans[q_num];
int main()
{
    int num,
        i,
       n,
       m;
   
    char ans1[q_num];
    char name[]={"exam report"};
    char name1[]={"Question"};
    char name2[]={"Answer"};
    int Missnum[5]={0};
    FILE *inp;
    FILE *outp;
    inp=fopen(shuru,"r");
    outp=fopen(shuchu,"w");
    fscanf(inp,"%d %c%c%c%c%c",&num,&ans[0],&ans[1],
            &ans[2],&ans[3],&ans[4]);
    fprintf(outp,"%20s\n",name);
    fprintf(outp,"%s",name1);
    for(i=1;i<=q_num;i++){
        fprintf(outp,"%6d",i);
    }
    fprintf(outp,"\n%s  ",name2);
    for(i=0;i<q_num;i++){
        fprintf(outp,"%6c",ans[i]);
    }
    fprintf(outp,"\n");
    fprintf(outp," ID     SCORE(%)\n");
   
    while(!feof(inp)){
        int n=0;
    fscanf(inp,"%d %c%c%c%c%c",&num,&ans1[0],&ans1[1],
            &ans1[2],&ans1[3],&ans1[4]);
      score(ans1,&n,Missnum);
       m=(n*100)/5;
      fprintf(outp,"%3d%10d\n",num,m);
    }
fprintf(outp,"\nQuestion");
for(i=1;i<=q_num;i++){
        fprintf(outp,"%6d",i);
}
fprintf(outp,"\nmissed by");

for(i=0;i<q_num;i++){
    fprintf(outp,"%6d",Missnum[i]);
}
}

extern char ans[q_num];
void score(char c[],int *x,int missnum[])
{

    int i;
    for(i=0;i<q_num;i++){
    if(c[i]==ans[i])
    {    *x=*x+1;
    missnum[i]=missnum[i]+0;}
    else missnum[i]=missnum[i]+1;
   
    }
}
我的代码生成的文件为什么多出了251 那一行
2010-10-08 14:10
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
这是为甚么啊~~~
2010-10-08 14:30
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
#include<stdio.h>
#define shuru "examdat.txt"
#define shuchu "report.txt"
#define q_num 5
void score(char c[],int *x,int missnum[]);
char ans[q_num];
int main()
{
    int num,
        i,
       n,
       m;
   
    char ans1[q_num];
    char name[]={"exam report"};
    char name1[]={"Question"};
    char name2[]={"Answer"};
    int Missnum[5]={0};
    FILE *inp;
    FILE *outp;
    inp=fopen(shuru,"r");
    outp=fopen(shuchu,"w");
    fscanf(inp,"%d %c%c%c%c%c",&num,&ans[0],&ans[1],
            &ans[2],&ans[3],&ans[4]);
    fprintf(outp,"%20s\n",name);
    fprintf(outp,"%s",name1);
    for(i=1;i<=q_num;i++){
        fprintf(outp,"%6d",i);
    }
    fprintf(outp,"\n%s  ",name2);
    for(i=0;i<q_num;i++){
        fprintf(outp,"%6c",ans[i]);
    }
    fprintf(outp,"\n");
    fprintf(outp," ID     SCORE(%)\n");
   
    while(!feof(inp)){
        int n=0;
    fscanf(inp,"%d %c%c%c%c%c",&num,&ans1[0],&ans1[1],
            &ans1[2],&ans1[3],&ans1[4]);
      score(ans1,&n,Missnum);
       m=(n*100)/5;
      fprintf(outp,"%3d%10d\n",num,m);
    }
fprintf(outp,"\nQuestion");
for(i=1;i<=q_num;i++){
        fprintf(outp,"%6d",i);
}
fprintf(outp,"\nMissedby");

for(i=0;i<q_num;i++){
    fprintf(outp,"%6d",Missnum[i]);
}
}

extern char ans[q_num];
void score(char c[],int *x,int missnum[])
{

    int i;
    for(i=0;i<q_num;i++){
    if(c[i]==ans[i])
    {    *x=*x+1;
    missnum[i]=missnum[i]+0;}
    else missnum[i]=missnum[i]+1;
   
    }
}
   
2010-10-08 14:30
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
  while(!feof(inp)){
        int n=0;
    fscanf(inp,"%d %c%c%c%c%c",&num,&ans1[0],&ans1[1],
            &ans1[2],&ans1[3],&ans1[4]);
      score(ans1,&n,Missnum);
       m=(n*100)/5;
      fprintf(outp,"%3d%10d\n",num,m);
    }
这个地方的循环控制有错误么?怎么多输出了一行
2010-10-08 15:09
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
Noboday
2010-10-08 18:00
快速回复:fscanf,fprintf
数据加载中...
 
   



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

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