int count;
char c;
FILE *fp;
fp=fopen("number.txt","r");
if(fp==NULL)
{
printf("Can't open the file!\n");
exit(0);
}
while(!feof(fp))
{
count=0;
while ((c=fgetc(fp))!=EOF)
{
if (c < 0)
count++;
}
}
fclose(fp);
printf("%d\n", count / 2);
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
为什么统计任意文本的字数最后出来的结果不正确呢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 快乐鹦鹉 2021-08-31 14:23关注
c<0的判断并不靠谱,中文是两个字节,其中首字节肯定大于0x80,但第二个字节不一定小于0x80啊
你应该判断前一个字节小于0时,跳过下一个字节int s = 0; while ((c=fgetc(fp))!=EOF) { if(s == 1) { s = 0; continue; } count++; if(c < 0) s = 1; }
解决 1无用
悬赏问题
- ¥15 这种情况的伯德图和奈奎斯特曲线怎么分析?
- ¥50 paddleocr带斜线的0很容易识别成9
- ¥15 电子档案元素采集(tiff及PDF扫描图片)
- ¥15 flink-sql-connector-rabbitmq使用
- ¥15 zynq7015,PCIE读写延时偏大
- ¥15 使用spss做psm(倾向性评分匹配)遇到问题
- ¥20 vue+UEditor附件上传问题
- ¥15 想做个WPS的自动化代码,不知道能做的起不。
- ¥15 uniApp,生成安卓安卓包后,黑暗主题中间内容不生效,底部导航正常
- ¥15 斯坦福自动漂移非线性模型反解