| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3318 人关注过本帖
标题:输入字符并统计个数,为什么字符个数总是多一倍?
只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
收藏
已结贴  问题点数:20 回复次数:13 
输入字符并统计个数,为什么字符个数总是多一倍?
#include<stdio.h>/**/
#include<stdlib.h>
int main()
{
    char a,name[10];
    FILE *fp;
    int num=0;
    printf("please input filename:\n");
    gets(name);
    if((fp=fopen(name,"w"))==NULL)
    {
        printf("file open error!\n");
        exit(0);
    }
     printf("please input char:\n");
     a=getchar();
     while(a!='#')
     {   
         fputc(a,fp);
         num++;                    //记录字符的个数
         a=getchar();
     }
     fprintf(fp,"%d",num);
     fclose(fp);
     return 0;
}
搜索更多相关主题的帖子: file 统计 please include 
2017-06-19 22:08
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:4 
没有编译,但从代码上看并没有问题。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-19 22:12
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 2楼 renkejun1942
图片附件: 游客没有浏览图片的权限,请 登录注册
  多一倍
2017-06-19 22:29
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 3楼 花脸
这个问题说的次数太多,甚至论坛上遍地都是这个问题,我都不想说了:回车!回车!回车!

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-19 22:37
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
是不是把回车都算了

DO IT YOURSELF !
2017-06-19 22:37
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 5楼 wp231957
fputc(a,fp);
         num++;                    //记录字符的个数
         a=getchar();      //  没有吧      这是接收下一个输入的字符的

     
2017-06-19 22:47
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:4 
getchar()输入以'\n'结束,输入's'+'\n'就两个字符了。
这样看看:
#include <stdio.h>
main()
{
    int i=1, ch=getchar();
    printf("输入的第%d个字符码:%d\n", i, ch);
    if (ch == '\n')
        return;
    while ((ch=getchar())!='\n' && ch!=EOF)
    {
        ++i;
        printf("输入的第%d个字符码:%d\n", i, ch);
    }
    ++i;
    printf("输入的第%d个字符码:%d\n", i, ch);
}
试输入:
s回车

abcd回车
2017-06-20 00:14
peng880610
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:128
专家分:123
注 册:2017-3-29
收藏
得分:4 
回车在getchar()也算一个字符的,所以只要按了回车就是一个字符
2017-06-20 00:14
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 7楼 吹水佬
这个是怎么消回车的 没看懂
2017-06-20 16:55
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 8楼 peng880610
2017-06-20 16:55
快速回复:输入字符并统计个数,为什么字符个数总是多一倍?
数据加载中...
 
   



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

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