| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 707 人关注过本帖
标题:新手求助,关于_bool用int代替的问题
取消只看楼主 加入收藏
小鸦
Rank: 2
等 级:论坛游民
帖 子:8
专家分:24
注 册:2013-3-29
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:0 
新手求助,关于_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,并能顺利运行。

搜索更多相关主题的帖子: include visual 关键字 
2013-03-30 04:12
快速回复:新手求助,关于_bool用int代替的问题
数据加载中...
 
   



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

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