| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1658 人关注过本帖
标题:布尔变量,书本上的题目,因编译器没有头文件<stdbool.h>,自定义了 bool, ...
取消只看楼主 加入收藏
Oscar_tam
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-4-27
结帖率:100%
收藏
已结贴  问题点数:14 回复次数:2 
布尔变量,书本上的题目,因编译器没有头文件<stdbool.h>,自定义了 bool,结果编译没法通过。大家帮忙看看问题在哪里?还有倒数第四行那个不
#include<stdio.h>
#include<ctype.h>//isspace()原型//
//#include<stdbool.h>//为bool,ture,false提供定义//
#define STOP '|'
#define bool int inword
#define true 1
#define false 0

main(void)
{
   char c;//读入字符//
   char prev;//前一个读入字符//
   long n_chars=0l;//字符数//
   int n_lines=0;//行数//
   int n_words=0;//单词数//
   int p_lines=0;//不完整行数//

   int inword=false;//单词的开始处//

   printf("请输入单词以统计("STOP"终止输入:\n)");

   prev='\n';//用于识别完整的行//

   while((c=getchar())!=STOP)
   {
      n_chars++;
      if(c=='\n')
          n_lines++;
      if(!isspace(c)&&(inword=false))
      {
        inword=true;//开始新单词//
            n_words++;//统计//
      }

      if(isspace(c)&&(inword=true))//如果是空白字符而且是在单词中间//
          inword=false;//到达单词尾部//
          prev=c;//保存字符值//
   }

   if(prev!='\n')//前一个字符不是换行符//
       p_lines=1;//非完整行//
   printf("字符数共%ld个,单词共%d个,共%d行,不完整行数共%d行.\n",n_chars,n_words,n_lines,p_lines);


  return 0;

}
搜索更多相关主题的帖子: include 编译器 false 布尔 倒数 
2014-06-10 07:52
Oscar_tam
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-4-27
收藏
得分:0 
回复 3 楼 rjsp
--------------------Configuration: counter - Win32 Debug--------------------
Compiling...
counter.c
C:\Program Files\Microsoft Visual Studio\MyProjects\counter\counter.c(20) : error C2143: syntax error : missing ')' before 'constant'
C:\Program Files\Microsoft Visual Studio\MyProjects\counter\counter.c(20) : error C2059: syntax error : ')'
执行 cl.exe 时出错.

counter.exe - 1 error(s), 0 warning(s)

很抱歉我说得不够详细。。原本是想统计一段文章一共输入的字符数和单词数等等。以上是错误信息,二楼找出来了,修改了之后可以运行。原代码是包含<stdbool.h>的,因为我的编译器没有这个文件,所以才有#define bool int inword(不知格式对不对),我是希望将inword作为0和1之间的转换,用来判断输入的字符是不是在单词之中(是的话为1,否则为0),比如if(!isspace(c)&&(inword=false))这里,如果输入的字符不是空字符并且不在单词之中,那么就是一个新单词的开始。

其实我主要是想知道在编译器没有<stdbool.h>的情况下,可以怎样修改原来包含<stdbool.h>的代码让程序运行。你说得对,找一个包含布尔的编译器确实节省很多时间。但我底子薄,还是希望能多了解一些。感谢您的帮助
2014-06-10 13:26
Oscar_tam
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-4-27
收藏
得分:0 
回复 2 楼 wp231957
问题确实在这里。修改之后编译通过,虽然还有很多瑕疵要改。谢谢啊!
2014-06-10 13:29
快速回复:布尔变量,书本上的题目,因编译器没有头文件<stdbool.h>,自定义了 b ...
数据加载中...
 
   



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

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