| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3469 人关注过本帖
标题:dev++输入教材上的示例程序不会运行
取消只看楼主 加入收藏
yliu07
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-8-11
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
dev++输入教材上的示例程序不会运行
之前只接触过python
c语言新手上路,下了一个dev c++就直接开始按照教材一点一点写一些简单程序。遇到一些问题:

书上的示例程序,统计行数
#include<stdio.h>
main()
{
    int cnt = 1;
    int c;
    while((c=getchar())!=EOF){
        
        if(c=='\n')
            cnt++;
        
    }
    printf("%d\n",cnt);
    return 0 ;
   
 }

这个程序有两个问题:
1.写好之后编译运行,弹出cmd黑框,请问我该怎么输入在cmd黑框里输入多行字符?或者说这个程序怎么才能正常使用(比如说我需要统计一个txt文件的行数,该怎么做呢?)?

2.这个程序不能正常运行。输入一行文字回车后应该打印cnt的原始值也就是1才对。可是我按了回车之后cmd的光标只是移动到下一行,并不执行printf指令。这个问题在之前好几个含有while((c=getchar())!=EOF)的程序中碰到过。

很苦恼,自己看不出程序本身的问题。可能是因为运行环境?或者是dev c++我不会用的原因?
恳求大神们指点!谢谢!
搜索更多相关主题的帖子: 新手上路 include return 
2016-08-11 17:23
yliu07
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-8-11
收藏
得分:0 
回复 3楼 ehszt
对的,EOF是末尾。 这个程序的意思是,如果读到换行符\n,则行数+1,最后打印行数
2016-08-11 18:49
yliu07
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-8-11
收藏
得分:0 
回复 2楼 砖家的谎言
我知道的,也用EOF和getchar成功运行过其他的程序,但是这个就是不行,不知道为何
2016-08-11 18:51
yliu07
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-8-11
收藏
得分:0 
回复 6楼 ehszt
太感谢您了!
您这个是可以的!

您能看出我写的那个为什么会不执行呢?
2016-08-11 20:33
yliu07
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-8-11
收藏
得分:0 
回复 8楼 ehszt
前辈,是这样的:
您说的意思我大概懂,不过指针那部分我还没有学到。
教材导言部分的一些简单的示例竟然都是这样写的,所以我才怀疑是不是其他的问题。。。

这为什么是个死循环呢?直接翻译过来不就是:当c不是终止符的时候,碰到换行符则行数+1吗?

之前简单的程序也不需要文件指针,比如:
#include<stdio.h>
main()
{
    int c;
    while((c =getchar())!=EOF)
        putchar(c);
}
上面这个字符复制程序运行后,在cmd黑框里输入一些字符,回车,就得到复制的一行字符了。

感谢指点!
2016-08-11 21:57
yliu07
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-8-11
收藏
得分:0 
关键问题是书上的示例程序我运行不出来。。练习题我自然也运行不出来。。
如果有高手能告诉我书上的示例是哪里有问题就好了。。
我自己看不出哪里有错误啊
2016-08-12 09:24
快速回复:dev++输入教材上的示例程序不会运行
数据加载中...
 
   



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

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