c语言bool变量和int相加,新手求助,关于_bool用int代替的问题

本人新手,刚刚开始自学C没几周,也刚刚知道这个论坛,所以不知道类似的问题有没有人提过....(关键字里咱没搜到...)如有重复,那...那望大神们重复回答吧。

背景...

我是在看 c primer 这本书。

现在碰到一个例题————统计字符、单词、和行。细细看过书之后,想在编译器上敲敲代码实现一下。编译器是 visual c++ 6.0。

原文代码是这样的:#include

#include

#include

#define STOP '|'

int main(void)

{

char c;                  //读入字符

char prev;               //前一个读入字符

long n_chars = 0L;       //字符数

int n_lines = 0;         //行数

int n_words = 0;         //单词数

int p_lines = 0;         //不完整的行数

bool inword = false;

printf("Enter text to be analyzed ( | to terminate):\n");

prev = '\n';

while((c=getchar())!=STOP)

{

n_chars++;           //统计字符

if(c=='\n')

n_lines++;       //统计行

if(!isspace(c)&&!inword)

{

inword = true;   //开始一个新单词

n_words++;       //统计单词

}

if(isspace(c)&&inword)

{

inword = false;  //到达单词尾部

prev = c;

}

if(prev!='\n')

p_lines = 1;

printf("characters=%ld, words=%d, lines=%d",n_chars,n_words,n_lines);

printf("partial lines=%d\n",p_lines);

return 0;

}

运行之后出错,编译器找不到头文件。那就不能用bool了。我就试着用int类型,ture为1,其余为0. bool inword 改为 int inword = 1(底下相应的地方也都改了,我也不知道这样行不行,就这么试着改改,经过修改之后程序依然运行不了。度娘之后有人说,把#include换成#define bool int,#define true 1,#define false 0。我试着修改,就有下面的代码。

#include

#include

#define bool int

#define true 1

#define false 0

#define STOP '|'

int main(void)

{

char c;

char prev;

long n_chars = 0L;

int n_lines = 0;

int n_words = 0;

int p_lines = 0;

bool inword = false;

printf("Enter text to be analyzed ( | to terminate):\n");

prev = '\n';

while((c=getchar())!=STOP)

{

n_chars++;

if(c=='\n')

n_lines++;

if(!isspace(c)&&!inword)

{

inword = true;

n_words++;

}

if(isspace(c)&&inword)

{

inword = false;

prev = c;

}

if(prev!='\n')

p_lines = 1;

printf("characters=%ld, words=%d, lines=%d",n_chars,n_words,n_lines);

printf("partial lines=%d\n",p_lines);

return 0;

}

可是还是运行不了,fatal error C1004: unexpected end of file found....

请问该怎么修改才能使程序正确运行呢?(可能用以后的知识还存在着更好的实现方法,但是我刚刚学习,刚学到这里,有人说不懂放着往后学,之后再回来看以前不懂的就会慢慢懂了。但是正好现在有时间,我就先把这个个人问题抛出来了。所以想知道对于这个例题怎么用int代替bool,并能顺利运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值