| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 617 人关注过本帖
标题:新手请教一个简单程序
取消只看楼主 加入收藏
ytsgj
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-9-7
收藏
 问题点数:0 回复次数:3 
新手请教一个简单程序
工作需要,重学C。
在看 The C Programming Language
这是其中一个练习给出的答案,有地方没看懂,请达人指点。

Write a program to count blanks, tabs, and newlines.

 
#include <stdio.h>
 
int main(void)
{
  int blanks, tabs, newlines;
  int c;
  int done = 0;
  int lastchar = 0;
 
  blanks = 0;
  tabs = 0;
  newlines = 0;
 
  while(done == 0)
  {
    c = getchar();
 
    if(c == ' ')
      ++blanks;
 
    if(c == '\t')
      ++tabs;
 
    if(c == '\n')
      ++newlines;
 
    if(c == EOF)
    {
      if(lastchar != '\n')
      {
        ++newlines; /* this is a bit of a semantic stretch, but it copes
                     * with implementations where a text file might not
                     * end with a newline. Thanks to Jim Stad for pointing
                     * this out.
                     */
      }
      done = 1;
    }
    lastchar = c;
  }
 
  printf("Blanks: %d\nTabs: %d\nLines: %d\n", blanks, tabs, newlines);
  return 0;
}

-------------------
1. done=0,dong=1是指什么?
2. 可不可以给说明一下最后部分
if(c == EOF)
    {
      if(lastchar != '\n')
      {
        ++newlines;
      }
      done = 1;
    }
    lastchar = c;
  }
3.return 0是返回什么?

也许问题幼稚,没办法,身边没人请教,全得自己来。
多谢了!
搜索更多相关主题的帖子: 工作 include count 
2008-09-07 20:28
ytsgj
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-9-7
收藏
得分:0 
多谢victormaomao520的回答。我想我问的不清楚。
1.done在这个程序里的含义是什么?

2.每一个语句的意思我明白,可是这段if语句执行的意义是什么?
 lastchar只在之前赋值0,那 lastchar != '\n' 从何而来。

3.这个return知道了。之前见到的都没这个语对main进行int声明,也就没用到这个return。

不好意思。

[[it] 本帖最后由 ytsgj 于 2008-9-7 21:17 编辑 [/it]]
2008-09-07 20:52
ytsgj
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-9-7
收藏
得分:0 
[bo][un]qfyzy[/un] 在 2008-9-7 21:00 的发言:[/bo]

我晕~如果以前学过,不至于连return 0都不知道吧。
对于这种程序问题,自己拿手画画,把自己放计算机,自然就知道了~别人帮你也没用!


谢谢你的指正。学C已经是10年前的事情了。
我现在的电脑上还没有合适的编译器。TurboC得DOS,VC装了一个总出错。
也就是暂时无法在自己的电脑上调试程序。
2008-09-07 21:12
ytsgj
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-9-7
收藏
得分:0 
多谢God_WangY,现在缺乏编程的思维,你这一点拨有些豁然开朗的感觉。非常感谢!
也谢谢qfyzy给的链接,下载完毕了,明晚用用看,以后会自己多实践的。

多谢给与回复的三位大虾!
2008-09-07 23:10
快速回复:新手请教一个简单程序
数据加载中...
 
   



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

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