佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 877|回复: 3

关于fscanf的问题

[复制链接]
cmw 该用户已被删除
发表于 29-3-2006 06:29 PM | 显示全部楼层 |阅读模式
假设问题是要求,在一个有50个分数的text file内算它的平均之类.
但是它付注text file内的分数可能少过50个.

那么,请问如果要知道一个text file内有多少个分数, 应该用什么condition?

我的概念是检察是不是 EOF, 但是失败了.....

如下:

void readData(FILE *fpOut,int list[])
{
        int i;
        int count=0;
       
        for(i=0;i<50 && list !=EOF;i++)
        {
        fscanf(fpOut, "%d", &list);
        count=count+1;
        }
        printf("counter:%d\n",count);
}
回复

使用道具 举报


ADVERTISEMENT

发表于 29-3-2006 09:06 PM | 显示全部楼层
/**********************************************************************8
        FILE *fpt;
        int total,number,count;
        double Average;

        fpt=fopen("number.txt","r");
        total=0;
        count=0;


        while (fscanf(fpt,"%d",&number)!=EOF)
        {
                total+=number;
                count++;
        }

        Average = total/count;
        printf("Total number is %d\n", count);
        printf("Average is %.2lf\n", Average);

        fclose(fpt);
***************************************************************************/

这个是我自己做来read from file 和 算average 和 text file 里的 分数。。。
test 过了,。。 你是要这样的马?
回复

使用道具 举报

发表于 29-3-2006 09:21 PM | 显示全部楼层
原帖由 cmw 于 29-3-2006 06:29 PM 发表
假设问题是要求,在一个有50个分数的text file内算它的平均之类.
但是它付注text file内的分数可能少过50个.

那么,请问如果要知道一个text file内有多少个分数, 应该用什么condition?

我的概念是检察是不是 ...

可以这样试下

#include <stdio.h>
#include <stdlib.h>

void readdata(FILE *fpout)
{
   int i,count,total,tmpdata;
   //i 是for loop用
   //count是算都少个分数以算平均
   //total是所有的分数总和
   //tmpdata是存从text file内拿出的分数

   if(fpout==NULL)
   {
      printf("ERROR");//防止file是空的
   }
   else
   {
      //总共loop 50次或者是fpout到达eof时推出for loop
      for(i=1 , count=1 ; i<=50 || feof(fpout) ; i++)
      {
         fscanf(fpout, "%d", &tmpdata);
         //把tmpdata内的分数加到total内
         total+=tmpdata;
         //把总共loop的次数,以确保少过50loop是依然可以average分数
         count+=1;
      }
      //把average分数列印出来
      printf("avg mark = %f",(double)total/count);
    }
    fclose(fpout);
}

____________
假设FILE *fpout从main()那里拿到file的名字

[ 本帖最后由 wing_s 于 29-3-2006 09:25 PM 编辑 ]
回复

使用道具 举报

cmw 该用户已被删除
 楼主| 发表于 29-3-2006 10:53 PM | 显示全部楼层
问题已经解决了,
多谢你们热心的帮忙.
=)

[ 本帖最后由 cmw 于 29-3-2006 11:22 PM 编辑 ]
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 5-3-2025 09:19 AM , Processed in 0.089093 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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