鱼C论坛

 找回密码
 立即注册
查看: 775|回复: 4

[已解决]C语言字符计数程序出不来结果

[复制链接]
发表于 2020-9-11 16:33:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
main()
{
       long nc;
       nc = 0;
       while (getchar() != EOF)
              ++nc;
              printf("%ld\n", nc);
}
用的软件是VS2019
求助大家!
最佳答案
2020-9-11 16:35:44
键盘输入没有EOF,文件末尾才有EOF
EOF就是end of file(文件末尾)
可以输入一个特殊符号表示结束(如0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-11 16:35:44 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
键盘输入没有EOF,文件末尾才有EOF
EOF就是end of file(文件末尾)
可以输入一个特殊符号表示结束(如0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-9-11 16:52:55 | 显示全部楼层
这个EOF是文件里面使用的,可以修改一下
  1. #include<stdio.h>
  2. int main()
  3. {
  4.        long nc;
  5.        nc = 0;
  6.        while (getchar() !=' \n')
  7.               ++nc;
  8.        printf("%ld\n", nc);
  9. }
复制代码

以输入回车健停止判断退出循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-11 18:10:53 | 显示全部楼层
本帖最后由 jackz007 于 2020-9-11 18:12 编辑

       在 Windows 下,long 和 int 一样都是32位整型,如果想定义64位整型应该用 long long,如果要显示一个 64 位整型数,printf() 的格式描述符不能用 "%ld" 应该按照微软的规矩,使用 "%I64d",因为,这个函数是 Windows 的库函数,各项输入参数是由 Windows 负责解析的。
  1. #include <stdio.h>
  2. main(void)
  3. {
  4.        long long nc                   ;
  5.        nc = 0                         ;
  6.        while (getchar() != EOF) nc ++ ;
  7.        printf("%I64d\n" , nc)         ;
  8. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-12 19:33:29 | 显示全部楼层
按键没有EOF,所以一直在计算,如果你按得够快,你电脑会卡死。把EOF换成'/n',表示换行,即按下了回车键,while就会退出,然后可以运行。
等等,while也可以不加大括号吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-9 07:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表