| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2136 人关注过本帖
标题:关于对文件中字符数目进行统计,为何数目是零的问题(硬件设施是手机,编译器 ...
只看楼主 加入收藏
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
结帖率:100%
收藏
已结贴  问题点数:25 回复次数:17 
关于对文件中字符数目进行统计,为何数目是零的问题(硬件设施是手机,编译器是c4droid)
我感觉逻辑挺正确的,而且源文件中也有单词,但为何统计不出,源码如下

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    FILE* pfile = NULL;
    int count = 0;
    char fname[30] = { 0 };
   
    printf("请输入文件名: ");
    scanf("%s", fname);
   
        //疑似问题所在
    if((pfile = fopen("/sdcard/fname", "r")) == NULL)
    {
       printf("\nERROR");
       exit(1);
    }
   
    while(fgetc(pfile) != EOF)
        count++;
        
    fclose(pfile);
   
    printf("\n%s文件有字符%d个", fname, count);
   
    return 0;
}

以上无法统计出(注意这是在c4droid上运行的,不知电脑上如何,大一党,只好用手机,见谅)
1.但当将fopen函数的第一个参数设为fname时竟可统
计出,为何啊
2.更改之后我用双引号括住//sdcard//fname也可运行,但数目又为零
搜索更多相关主题的帖子: 编译器 include 源文件 count 手机 
2016-09-15 21:00
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
改成这样呢?\\sdcard\\fname
2016-09-15 21:07
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
收藏
得分:0 
回复 2楼 ehszt
据本程序会显示ERROR ,这样格式是错误的,应是左斜杠
2016-09-15 21:43
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
回复 3楼 南山浅悠然
哦,电脑里是右斜杠。
2016-09-15 21:46
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:13 
fopen("/sdcard/fname", "r")的意思是打开当前目录下sdcard子目录下的fname文件。
想要fname是个变量,就得fopen(fname,"r");如果要指出sdcard的目录,那就要通过修改fname字符串才行。



φ(゜▽゜*)♪
2016-09-15 21:48
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
收藏
得分:0 
回复 5楼 书生牛犊
恍然大悟,忽略了计算机的基础知识,把fname改为要打开的文件就可以了吗?不用变量,例如:/sdcard/c.
txt对吧。
2016-09-15 21:53
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:12 
对了,在双引号中fname会保持原样不会翻译成你输入的文件名。只有不带双引号,用fname才可以成功。
或者直接在双引号中代入你要打开的文件名。我开始也没有意识到这一点。

[此贴子已经被作者于2016-9-15 21:57编辑过]

2016-09-15 21:56
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
收藏
得分:0 
回复 7楼 ehszt
但若是换成/sdcard/c.txt这样,fgetc()这里该怎样更改
2016-09-15 22:00
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
回复 8楼 南山浅悠然
这个不变。还是原来的文件指针
2016-09-15 22:02
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
我去百度百科查了一下fgetc函数的相关信息。

感觉你的代码能用啊?

错哪了吗?

φ(゜▽゜*)♪
2016-09-15 22:07
快速回复:关于对文件中字符数目进行统计,为何数目是零的问题(硬件设施是手机, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019171 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved