友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
飞读中文网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

C语言程序设计-第9章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



4)  在使用C语言库函数时,要用预编译命令
#include
将有关“头文件”包括到源文件中。
使用标准输入输出库函数时要用到 “stdio。h”文件,因此源文件开头应有以下预编译命令:
#include《 stdio。h 》

#include ”stdio。h”
stdio是standard input &outupt的意思。
5)  考虑到printf和scanf函数使用频繁,系统允许在使用这两个函数时可不加
#include《 stdio。h 》

#include ”stdio。h”
4。4  字符数据的输入输出
4。4。1  putchar 函数(字符输出函数)
putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。
其一般形式为:
putchar(字符变量)
例如:
putchar('A');(输出大写字母A)
putchar(x);  (输出字符变量x的值)
putchar(‘101’); (也是输出字符A)
putchar('n');   (换行)
对控制字符则执行控制功能,不在屏幕上显示。
使用本函数前必须要用文件包含命令:
#include

#include “stdio。h”
【例4。1】输出单个字符。
#include
main(){《 BR》  chara'B';b'o';c'k';
  putchar(a);putchar(b);putchar(b);putchar(c);putchar('t');
  putchar(a);putchar(b);
  putchar('n');
  putchar(b);putchar(c);

4。4。2  getchar函数(键盘输入函数)
getchar函数的功能是从键盘上输入一个字符。
其一般形式为:
getchar();
通常把输入的字符赋予一个字符变量,构成赋值语句,如:
char c;
  cgetchar();
【例4。2】输入单个字符。
#include
void main(){
  char c;
  printf(〃input a charactern〃);
  cgetchar();
  putchar(c);

使用getchar函数还应注意几个问题:
1)  getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。
2)  使用本函数前必须包含文件“stdio。h”。
3)  在TC屏幕下运行含本函数程序时,将退出TC 屏幕进入用户屏幕等待用户输入。输入完毕再返回TC屏幕。
4)  程序最后两行可用下面两行的任意一行代替:
putchar(getchar());
printf(“%c”;getchar());
4。5  格式输入与输出
4。5。1  printf函数(格式输出函数)
printf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。在前面的例题中我们已多次使用过这个函数。
1。  printf函数调用的一般形式
printf函数是一个标准库函数,它的函数原型在头文件“stdio。h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio。h文件。
printf函数调用的一般形式为:
printf(“格式控制字符串”,输出表列)
其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:
“%d”表示按十进制整型输出;
“%ld”表示按十进制长整型输出;
“%c”表示按字符型输出等。
非格式字符串在输出时原样照印,在显示中起提示作用。
输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。
【例4。3】
main()

  inta88;b89;
  printf(〃%d %dn〃;a;b);
  printf(〃%d;%dn〃;a;b);
  printf(〃%c;%cn〃;a;b);
  printf(〃a%d;b%d〃;a;b);

本例中四次输出了a;b的值,但由于格式控制串不同,输出的结果也不相同。第四行的输出语句格式控制串中,两格式串%d 之间加了一个空格(非格式字符),所以输出的a;b值之间有一个空格。第五行的printf语句格式控制串中加入的是非格式字符逗号, 因此输出
的a;b值之间加了一个逗号。第六行的格式串要求按字符型输出 a;b值。第七行中为了提示输出结果又增加了非格式字符串。
2。  格式字符串
在Turbo C中格式字符串的一般形式为:
  '标志''输出最小宽度''。精度''长度'类型
  其中方括号''中的项为可选项。
各项的意义介绍如下:
1)  类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:
格式字符  意  义
d  以十进制形式输出带符号整数(正数不输出符号)
o  以八进制形式输出无符号整数(不输出前缀0)
x;X  以十六进制形式输出无符号整数(不输出前缀Ox)
u  以十进制形式输出无符号整数
f  以小数形式输出单、双精度实数
e;E  以指数形式输出单、双精度实数
g;G  以%f或%e中较短的输出宽度输出单、双精度实数
c  输出单个字符
s  输出字符串
2)  标志:标志字符为、+、#、空格四种,其意义下表所示:
标 志  意   义
  结果左对齐,右边填空格
+  输出符号(正号或负号)
空格  输出值为正时冠以空格,为负时冠以负号
#  对c;s;d;u类无影响;对o类;在输出时加前缀o;对x类;在输出时加前缀0x;对e;g;f 类当结果有小数时才给出小数点
3)  输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
4)  精度:精度格式符以“。”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
5。长度:长度格式符为h;l两种,h表示按短整型量输出,l表示按长整型量输出。
【例4。4】
main()

  int a15;
  float b123。1234567;
  double c12345678。1234567;
  char d'p';
  printf(〃a%d;%5d;%o;%xn〃;a;a;a;a);
  printf(〃b%f;%lf;%5。4lf;%en〃;b;b;b;b);
  printf(〃c%lf;%f;%8。4lfn〃;c;c;c);
  printf(〃d%c;%8cn〃;d;d);
} 
本例第七行中以四种格式输出整型变量a的值,其中“%5d ”要求输出宽度为5,而a值为15只有两位故补三个空格。 第八行中以四种格式输出实型量b的值。其中“%f”和“%lf ”格式的输出相同,说明“l”符对“f”类型无影响。“%5。4lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。第九行输出双精度实数,“%8。4lf ”由于指定精度为4位故截去了超过4位的部分。第十行输出字符量d,其中“%8c ”指定输出宽度为8故在输出字符p之前补加7个空格。
使用printf函数时还要注意一个问题,那就是输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右,也可从右到左。Turbo C是按从右到左进行的。请看下面两个例子:
【例4。5】
main(){
  int i8;
  printf(〃%dn%dn%dn%dn%dn%dn〃;++i;i;i++;i;i++;i);

【例4。6】
main(){
  int i8;
  printf(〃%dn〃;++i);
  printf(〃%dn〃;i);
  printf(〃%dn〃;i++);
  printf(〃%dn〃;i);
printf(〃%dn〃;i++);
  printf(〃%dn〃;i);

这两个程序的区别是用一个printf语句和多个printf 语句输出。但从结果可以看出是不同的。为什么结果会不同呢?就是因为printf函数对输出表中各量求值的顺序是自右至左进行的。在第一例中,先对最后一项“i”求值,结果为8;然后i自减1后为7。 再对“i++”项求值得7,然后i自增1后为8。再对“i”项求值得8,然后i再自减1后为7。再求“i++”项得7,然后i再自增1后为8。 再求“i”项,i先自减1后输出,输出值为7。 最后才求输出表列中的第一项“++i”,此时i自增1后输出8。
但是必须注意,求值顺序虽是自右至左,但是输出顺序还是从左至右,因此得到的结果是上述输出结果。
4。5。2  scanf函数(格式输入函数)
scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
1。  scanf函数的一般形式
scanf函数是一个标准库函数,它的函数原型在头文件“stdio。h”中,与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio。h文件。
scanf函数的一般形式为:
scanf(“格式控制字符串”,地址表列);
其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。
例如:
&a; &b
分别表示变量a和变量b 的地址。
这个地址就是编译系统在内存中给a;b变量分配的地址。在C语言中,使用了地址这个概念,这是与其它语言不同的。 应该把变量的值和变量的地址这两个不同的概念区别开来。变量的地址是C编译系统分配的,用户不必关心具体的地址是多少。
变量的地址和变量值的关系如下:
在赋值表达式中给变量赋值,如:
a567
则,a为变量名,567是变量的值,&a是变量a的地址。
但在赋值号左边是变量名,不能写地址,而scanf函数在本质上也是给变量赋值,但要求写变量的地址,如&a。 这两者在形式上是不同的。&是一个取地址运算符,&a是一个表达式,其功能是求变量的地址。
【例4。7】
main(){
  int a;b;c;
  printf(〃input a;b;cn〃);
  scanf(〃%d%d%d〃;&a;&b;&c);
  printf(〃a%d;b%d;c%d〃;a;b;c);

在本例中,由于scanf函数本身不能显示提示串,故先用printf语句在屏幕上输出提示,请用户输入a、b、c的值。执行scanf语句,则退出TC屏幕进入用户屏
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!