适用,便于在各种计算机上实现。
C语言函数库中有一批“标准输入输出函数”,它是以标准的输入输出设备(一般为终端设备)为输入输出对象的。其中有:putchar(输出字符)、getchar(输入字符)、printf(格式输出)、scanf(格式输入)、puts(输出字符串)和gets(输入字符串)。
(3) 在使用系统库函数时,要在程序文件的开头用预处理指令#include把有关头文件放在本程序中,如:#include <stdio.h> 或 #include “stdio.h”
以上两种#include指令形式的区别是:用尖括号<>(如<stdio.h>)时,编译系统从存放C编译系统的子目录中去找所要包含的文件(如stdio.h),这称为标准方式。如果用双撇号形式(如”stdio.h”),在编译时,编译系统先在用户的当前目录(一般是用户存放源程序文件的子目录)中寻找要包含的文件,若找不到,再按标准方式查找。
如果用#include指令是为了使用系统库函数,因而要包含系统提供的相应头文件,以用标准方式为宜,以提高效率。
如果用户想包含的文文件不是系统提供的相应头文件,而是用户自己编写的文件(这种文件一般都存放在用户当前目录中),这是应当用双撇号形式,否则会找不到所需的文件。如果该头文件不在当前目录中,可以在双撇号中写出文件路径(如#include “c:\temp\file.h”),以便系统能从中找到所需的文件。
注意:应该养成该习惯:只要在本程序文件中使用标准输出输出库函数时,一律加上#include <stdio.h>指令。
3.4.3 用printf函数输出数据
printf函数(格式输出函数)用来向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。
1.printf函数的一般格式
printf函数的一般格式为:printf(格式控制,输出表列)例:printf(“%d,%c\n”,a,b);
(1)“格式控制”是用双撇号括起来的一个字符串,称“转换控制字符串”,简称“格式字符串”。它包括两个信息:
①格式说明。格式声明由“%”和格式字符组成,如%d、%f等。它的作用是将输出的数据转换为指定的格式然后输出。格式声明总是由“%”字符开始的。
②普通字符。普通字符即需要在输出时原样输出的字符。
(2)“输出表列”是程序需要输出的一些数据,可以是常量、变量或表达式。
例:
printf(“ %d , %c \n”, a , b );
格式声明 输出表列
printf函数的一般形式可以表示为
printf(参数1,参数2,参数3……,参数n);
2.格式字符
(1)d格式字符。用来输出一个有符号的十进制整数。
可以在格式声明中指定输出数据的域宽(所占的列数),如用“%5d”指定输出数据占5列。
(2)c格式符。用来输出一个字符。
如: char ch = ‘a’;
printf(“%c”,ch);
运行时输出a
(3)s格式符。用来输出一个字符串。如:
printf(“%s”, ”China”);
(4)f格式符。用来输出实数(包括单、双、长双精度),以小数形式输出,有以下用法
①基本型,用%f
不指定输出数据的长度,有系统根据数据的实际情况决定数据所占的猎术。系统处理的方法一般是:实数中的整数部分全部输出,小数部分输出6位。
②指定数据宽度和小数位数,用%m.nf.指定数据占m列,小数占有n列。若把小数部分n指定为0,则不仅不输出小数,并且小数点也不输出。
如printf(“%20.15f\n”,a);
注意:在用%f输出时要注意数据本身能提供的有效数字,如float型数据的存储单元只能保证6位有效数字。double型数据能保证15位有效数字。
③输出的数据想左对齐,用%-m.nf
在m.n的前面加一个负号,其作用与%m.nf形式作用基本相同;但当数据长度不超过m时,数据向左靠,右端补空格。换个说法就是,左对齐。
(5)e格式符,用格式声明%e指定以指数形式输出实数。如果不指定输出数据所占的宽度和数字部分的小数位数,许多C编译系统(如VC6.0)会自动给出数字部分的小数位为6位,指数部分占5列(如e+002,其中“e”占1列,指数符号占1列,指数占3列)。
数值按标准化指数形式输出(即小数点前必须有且只有1位非零数字)。如:
printf(“%e”,123.456);
输出如下:
1.234560 e+002
6列 5列
所输出的实数共占有13列宽度。(注:不同系统的规定略有不同)
C语言还提供以下几种输出格式符,由于初学,用的次数不多,不过多详细介绍
(1)i格式符。作用于d格式符相同,按十进制整型数据的实际长度输出。一般习惯用%d而少用%i。
(2)o格式符。以八进制整数形式输出。
(3)x格式符。以十六进制数形式输出整数。
(4)u格式符。用来输出无符号(unsigned)型数据,以十进制整数形式输出。
(5)g格式符。用来输出浮点数,系统自动选f格式或e格式输出,选择其中长度较短的格式,不输出无意义的0.
综上所述,格式声明的一般形式可以表示为:
% 附加字符 格式字符
printf函数中用到的格式字符
printf函数中用到的格式附加字符
3.4.4 用scanf函数输入数据
1.scanf函数的一般形式
scanf(格式控制,地址表列)
“格式控制”的含义通printf函数。“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。
2.scanf函数中的格式声明
与printf函数中的格式声明类似,以%开始,以一个格式字符结束,中间可以插入附加的字符。
scanf函数中所用到的格式字符
scanf函数中用到的格式附加字符
3.使用scanf函数时应注意的问题
(1)scanf函数中的“格式控制”后面应当是变量地址,而不是变量名。
(2)如果在“格式控制字符串”中除了格式声明以外还有其他字符,则在输入数据时在对应的位置上应输入与这些字符相同的字符。
3.4.5 字符数据的输入输出
1.用putchar函数输出一个字符
想从计算机向显示器输出一个字符,可以调用系统函数库中的putchar函数(字符输出函数)。
putchar函数的一般形式为
putchar(c