求用C语言编写一个程序

编写一个C程序实现对一个或多个文件的行数、字数和字符数的统计

/*
程序在win-tc和tc2.0下调试通过,该程序实现统计一个文件的行数、字数和字符数。
一个行由一个换行符限定,一个字由空格分隔(包括空白符、制表符和换行符),
字符是指文件中的所有字符,包括回车符。
运行本程序,程序提示输入要统计的文件名(文件应该是文本文件),然后回车执行。
*/

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
FILE *fp;
char fname[80];/*存贮文件名*/
int inline,inword; /* 行内和字内标志 */
int ccount,wcount,lcount; /* 字符,字,行 计数器 */
int c;
lcount=wcount=ccount=0;
inword=inline=0;

clrscr();
printf("Please input the file's name:\n");
scanf("%s",fname);
if((fp=fopen(fname,"r"))==NULL)
{
printf("Can't open file %s.\n",fname);
exit(1);
}
while((c=fgetc(fp))!=EOF)
{
ccount++;
if(c=='\n'||c==' '||c=='\t')
inword=0;
else if(inword==0)
{
wcount++;
inword=1;
}
if(c=='\n')
inline=0;
else if(inline==0)
{
lcount++;
inline=1;
}
}
fclose(fp); /* 关闭文件 */
printf(" Lines = %d\n",lcount);
printf(" Words = %d\n",wcount);
printf(" Characters = %d\n",ccount);
getch();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-27
5fen...
由于分数太少,我就写一个简单的,本函数可以扩展~吧分给我吧~
参数:文件名
返回值:字符数
int count(char *filename){
FILE *fp;
int c,ret;
char buf[BUFSIZ];
ret=0;
fp=fopen(filename,"r");
if(!fp)return -1;
while((c=fread(buf,BUFSIZ,0,fp))>=0){
ret+=c;
}
return ret;
}
第2个回答  2008-10-27
想学好,最好能自己写。你可以多看看别人写的,也好为自己写打下基础。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网