`
nigelzeng
  • 浏览: 599530 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

《C程序设计语言》学习记录(未完结,不定时更新)

    博客分类:
  • C
阅读更多

1. 不等号的优先级高于等号

若把 while ( (c = getchar ()) != EOF )

写成 while ( c = getchar () != EOF ),就相当于是这条语句:

while ( c = (getchar () != EOF) ) 意义完全不同

 

2. long 类型需要在使用printf函数时用%ld来说明。

 

3. getchar ()函数会把 换行 字符也读入缓存

 

#include <stdio.h>

main ()
{
        long nc = 0;

        while ( (c = getchar ()) !=EOF )
                        nc++;

        printf ("There's %ld characters.\n",nc);
}

 如果你输入了a,b,c三个字符,上面这段代码会输出一共输入了6个字符,原因就是每一次输入的换行符也被读入了

可以修改一下,把换行符去掉(getchar存储的是字符的ascii码,而换行符的ascii码为10,制表符是9,空格是32):

 

#include <stdio.h>

main ()
{
        long nc = 0;
        int c;

        while ( (c = getchar ()) !=EOF )
        {
                printf ("c is %d\n",c);
                if (c != 10)  /* or use: if ( c != '\n' ) */
                        nc++;
        }
        printf ("There's %ld characters.\n",nc);
}

 

另外,可以直接用scanf ()函数,scanf ()函数本身就不会读取末尾的换行。

 

 

4、gcc编译时报错误:`true' undeclared (first use in this function) 

在编译C语言时有时会遇到这样的错误提示:

`true' undeclared (first use in this function) or `false' undeclared (first use in this function)

就是说 bool, true, false 都是undeclared,原因很简单,因为真正的C中没有这些关键字,c和早期的c++里没有关键字bool,使用BOOL可以,但BOOL不是内置类型了,都是通过typedef或者宏来定义的,通常都会被定义成int类型。后来的c++出现了内置类型bool,值只能为true(1)和false(0)。

解决方法:

1、将文件名.c改为文件名.cpp,用C++方式编译则没问题

2、自己进行一个宏定义:

 

typedef enum __bool { false = 0, true = 1, } bool;

c90是没有bool的,因此支持c90的dev-c++当然也没有。想在c90里用bool,可以自行用宏进行定义。 

c99支持bool,用支持c99的编译器例如gcc就可以的。

 

参考:http://blog.sina.com.cn/s/blog_6a6094d501011g2h.html

分享到:
评论

相关推荐

    单片机(汇编语言)秒表课程设计设计.docx

    单片机(汇编语言)秒表课程设计设计全文共14页,当前为第1页。单片机(汇编语言)秒表课程设计设计全文共14页,当前为第1页。 单片机(汇编语言)秒表课程设计设计全文共14页,当前为第1页。 单片机(汇编语言)秒表课程...

    70个 电子专业毕业设计及产品设计资料单片机设计资料,硬件设计参考软件例程等资料.zip

    单片机C语言程序设计实训100例——基于8051+Proteus仿真 单片机串行口与PC机通讯资料 单片机串行通信发射机资料 单片机定时闹钟资料 单片机扩展串行通信资料 单片机控制LED点阵显示器 单片机控制交通灯资料 单片机...

    51单片机C语言编程基础及实例

    51 单片机设计跑马灯的程序用(c 语言)编写 P1 口接 8 个发光二极管共阳,烧入下面程序 #include unsigned char i; unsigned char temp; unsigned char a,b; void delay(void) { unsigned char m,n,s; for(m=20;m&gt;0...

    基于单片机电子秒表设计毕业论文

    其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态...

    单片机设计大赛题目.doc

    " " " "单片机设计与开发大赛题型示例 " " " " " " " " " " " "电风扇模拟控制系统设计 " " " " " "功能 " "简述 " " " "电风扇模拟控制系统能模拟电风扇工作,主要由电机控制电路、电机过热检测与保护电路、定时和...

    入门学习Linux常用必会60个命令实例详解doc/txt

    -d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。 -i: 在重开机之前先把所有与网络相关的装置停止。 install 1.作用 install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。 ...

    基于单片机的多功能秒表系统课程设计.doc

    我们使用汇编语言来 编写程序,采用模块化程序设计方法,主程序有多个子程序构成,这些子程序可以单独 的设计,调试和管理,其中包括加1子程序、减1子程序、延时子程序、快加子程序,复 位子程序和显示子程序等。...

    易企CMS v1.8

    模板div+css标准设计,符合w3c标准,兼容主流浏览器;开发语言和数据库:PHP+Mysql。 本程序亮点:从基础代码开发起完全符合SEOWHY理论的SEO规范,力图实现国内首款对SEO最友好的企业网站开源程序,为企业网络营销的...

    酷睿股票私募网站管理系统 V2010 SP2

    继续ASP开源之路,稳定、安全、强大的核心程序,对于有网站设计知识和程序爱好者可以随心所欲进行修改,方便建立具有自已特色的站点。  酷睿股票私募网站管理系统,最大的优势不仅在于有全国首创的WAP手机访问系统...

    银行家算法死锁的避免.doc

    实验安排:自选编程语言完成“银行家算法”,记录程序运行结果,完成实验报告。 实验要求:1)设计五个进程{P0,P1,P2,P3,P4}共享三类资源{A,B,C}的系统,{A,B,C}的资源总数量分别为10,5,7。(详见参见课本...

    vc++ 应用源码包_1

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    电子发声设计实验(1).doc

    分析讨论 这是《接口与通信》课程的第一个实验,虽然还有点陌生,但基本熟悉了80X86汇编语言 的程序设计方法,通过DOS系统中断INT21H 9号功能调用,掌握了字符串在屏幕上的显示方法。通过二进制 BCD码转换程序的...

    vc++ 应用源码包_2

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_6

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_5

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_3

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    计算机组成原理测试题

    计数器定时查询 C. 独立请求 12.微程序控制器中,机器指令与微指令的关系是________。 A. 每一条机器指令由一条微指令执行 B. 每一条机器指令由一段用微指令编成的微程序来解释执行 C. 一段机器指令组成的程序...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正Alert消息中引号未编码导致的JS错误(feedback:sun1299shine)。 +集成extjs3.0.3。 -修正弹出对话框的宽度计算错误(会保持最小的状态)。 -增加新的皮肤Gray。 -为示例工程添加改变语言和皮肤的下拉列表。...

Global site tag (gtag.js) - Google Analytics