单词数统计

来源:百度知道 编辑:UC知道 时间:2024/05/15 08:26:26
int word()
{
int nc,nl,nw;
FILE *pf;
char c,xx[50];
nc=nw=0;
nl=OUT;
printf("输入你要查询的文件名:\n");
scanf("%s",xx);

if((pf=fopen(xx,"rt"))==NULL)
{
printf("文件打开错误\n");
printf("输入任意键继续\n");
getchar();
return 0;
}
c=fgetc(pf);
while(c!=EOF);
{
nw++;
if(c=='\n'||c==' ')
{
nl=OUT;
}
else if(nl==OUT)
{
nl=IN;
nc++;
}
c=fgetc(pf);
}
printf("单词数为:%d\n",nc);
printf("字符总数为:%d\n",nw);
fclose(pf);
return 0;
}

运行输入单词名后 就卡住了 怎么回事啊
前面的宏忘了说了
已定义了宏
#define OUT 0
#define IN 1

原因是while(c!=EOF); 这后面多了个分号,程序没报错!
还有一个问题就是nc统计的是'\n'和' '的总数量。
else if(nl==OUT) 这句话应该写成if(nl==OUT)

....fopen(xx,"r"))==...

"r"