FILE c语言??

来源:百度知道 编辑:UC知道 时间:2024/06/04 22:36:42
int statistic (FILE *fp,int candidate[ ],int n)
{ /* 从文件中读入选票数据,n为候选人数量(n<80),从有效选票中统计每位候选者的得票数并存入candidate[],函数返回有效选票数 */

char str[80]; /* str保存读入的一张选票数据 */
int i, tag=0; /* tag用于判断每张选票是否有效 */
int q=0; /* q用于计算有效选票数 */
for(i=0:i<n; i++)
candidate[i]=0;

while( !feof(fp) ){
fgets(str, 80, fp): /* 读入一张选票数据 */
for(tag=0, i=0 ; ( i<n&&str[i]!='\o' ) ; i++)
if (str[i] = = '1 ') tag++;
if (tag>=1&&tag<=3) { /* 若是有效选票,则进行统计 */
(q++);
for(i=0;i<n;i++)
if(str[i]= =‘1’) candidate[i]++ ;


return q;
} /* statistic */
上面c语言 我 不 是很 懂 FILE, !feof(fp),fgets
这个程序 不是很全 可以的话帮我补全了 做一个显示的 给我看看
有具体内容的

这是一个函数,可以在其它函数中调用它以完成选票统计的工作,以下是一个“可显示”的程序,要想它正常工作,需要有一个格式正确的选票数据文件:

#include <stdio.h>
#define N 40
#define FILENAME "e:\\a.txt" /*自己修改这个文件地址*/
int statistic (FILE *fp,int candidate[ ],int n)
{ /* 从文件中读入选票数据,n为候选人数量(n<80),从有效选票中统计每位候选者的得票数并存入candidate[],函数返回有效选票数 */

char str[80]; /* str保存读入的一张选票数据 */
int i, tag=0; /* tag用于判断每张选票是否有效 */
int q=0; /* q用于计算有效选票数 */
for(i=0:i<n; i++)
candidate[i]=0;

while( !feof(fp) ){
fgets(str, 80, fp): /* 读入一张选票数据 */
for(tag=0, i=0 ; ( i<n&&str[i]!='\o' ) ; i++)
if (str[i] = = '1 ') tag++;
if (tag>=1&&tag<=3) { /* 若是有效选票,则进行统计 */
(q++);
for(i=0;i<n;i++)
if(str[i]= =‘1’) candidate[i]++ ;


return q;


int main(void)
{
FILE *fp;
int pe[N],count;
fp=fopen(FILENAME,"r");
count=statistic(fp,pe,N);
for (i=0;i<