新手求助,关于_bool用int代替的问题
本人新手,刚刚开始自学C没几周,也刚刚知道这个论坛,所以不知道类似的问题有没有人提过....(关键字里咱没搜到...)如有重复,那...那望大神们重复回答吧。背景...
我是在看 c primer 这本书。
现在碰到一个例题————统计字符、单词、和行。细细看过书之后,想在编译器上敲敲代码实现一下。编译器是 visual c++ 6.0。
原文代码是这样的:
#include<stdio.h>
#include<ctype.h>
#include<stdbool.h>
#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;
}
运行之后出错,编译器找不到<stdbool.h>头文件。那就不能用bool了。我就试着用int类型,ture为1,其余为0. bool inword 改为 int inword = 1(底下相应的地方也都改了,我也不知道这样行不行,就这么试着改改,经过修改之后程序依然运行不了。度娘之后有人说,把#include<stdbool.h>换成#define bool int,#define true 1,#define false 0。我试着修改,就有下面的代码。
#include<stdio.h>
#include<ctype.h>
#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,并能顺利运行。