请教一个关于统计字符、数字、大、小写字母的问题。

weatherspoon 2006-04-02 10:38:57
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

void main()
{
FILE *fp1;
int flag=1,cha=0,ent=0,num=0,bz=0,sz=0;//字符,换行,数字,大写字母,小写字母
char ch;
printf("请为文件Qh.txt输入文本(输入x或X为结束符):\n");
do
{
ch=getchar();
if((fp1=fopen("Qh.txt","a+"))==NULL)
{
printf("文件打开错误!");
exit(0);
}
else
{
fputc(ch,fp1);
}
}while(ch!='x'&&ch!='X');
printf("输入完成\n\n");

do
{
rewind(fp1);
ch=fgetc(fp1);
if(ch>47&&ch<58)
{
num++;
}
else if(ch==13)
{
ent++;
}
else if(ch>96&&ch<123)
{
sz++;
}
else if(ch>64&&ch<91)
{
bz++;
}
else
{
cha++;
}
fclose(fp1);
}while(!(feof(fp1)));
printf("文件Qh.txt的统计数据如下:\n");
printf("字符 = %d\n换行符 = %d\n数字 = %d\n大写英文字母 = %d\n小写英文字母 = %d\n",cha,ent,num,bz,sz);
}

不知道差在哪里。
...全文
297 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingerwt 2006-04-16
  • 打赏
  • 举报
回复
每次读写把以前的覆盖掉了拉
放在循环外面就OK
jixingzhong 2006-04-16
  • 打赏
  • 举报
回复
....

文件指针的调整,
文件的关闭...

楼主在逻辑上有点混乱 ~
lonelyforest 2006-04-16
  • 打赏
  • 举报
回复
do
{
rewind(fp1); // 放在 do 之前!!!!!
ch=fgetc(fp1);
if(ch>47&&ch<58)
{
num++;
}
else if(ch==13)
{
ent++;
}
else if(ch>96&&ch<123)
{
sz++;
}
else if(ch>64&&ch<91)
{
bz++;
}
else
{
cha++;
}
fclose(fp1); // 放在 while 之后!!!!!!! 错在这里。
}while(!(feof(fp1)));
printf("文件Qh.txt的统计数据如下:\n");
printf("字符 = %d\n换行符 = %d\n数字 = %d\n大写英文字母 = %d\n小写英文字母 = %d\n",cha,ent,num,bz,sz);
ma100 2006-04-16
  • 打赏
  • 举报
回复
rewind(fp1);

do
{

k_wind 2006-04-16
  • 打赏
  • 举报
回复
程序运行后,输入的文本除了X之外,其它的存不到Qh.txt中,程序也不能正常结束,我有经常有这种情况,估计是那个变量字母搞混了.
GaoXX 2006-04-16
  • 打赏
  • 举报
回复
顶一下

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧