5.0 数据的输入和输出
5.0.1 输入和输出的概念
(1) 输入和输出是以计算机主机为主体而言的。
(2)c语言本身不提供输入输出语句。由c标准函数库中的函数实现。在
(3)在程序文件开头用预处理指令#include把有关头文件放在程序中。
5.0.2 用printf函数输出数据
(1)printf函数的一般格式:printf(格式控制,输出表列) 如:printf("%d%d",z,h);
格式控制使用双引号括起来的字符串,称为格式控制字符串,简称格式字符串,包括格式声明
和普通字符。格式声明由"%"和和格式字符组成,如%d,%f。作用是将输出的数据转换为指定
格式后输出。普通字符即需要在输出时原样输出的字符。
输出表列:程序需要输出的一些数据,可以是常量,变量或者表达式。
(2)格式字符:在输出时,对不同类型的数据要指定不同的格式声明,常用以下几种格式字
符。
d格式符:%d,用来输出有符号的十进制整数。正数的符号不输出。
可以在格式声明中指定输出数据的域宽(所占的列数),如%5d表示输出的数据占5列。
输出的数据显示在此5列区域的而右侧。
:12的前面有3个空格,-345前面有一个空格。
c格式符:用来输出一个字符。
如果输出整数比较大,则把这个数最后一个字节(二进制八位)的信息以字符形式输
出,所以会输出y。
0 0 0 0 0 0 0 1 | 0 1 1 1 1 0 0 1 |
最后一个字节是红色字体,一共八位,转换为十进制就是121,所以输出y。
s格式符:用来输出一个字符串。
f格式符:用来输出实数(包括单双精度,长双精度),以小数形式输出。有以下用法:
1.基本型,用%f,不指定输出数据的长度,由系统决定数据所占列数,系统默认实
数整数部分全部输出,小数部分输出6位。
2.指定数据宽度和小数位数,用 %m.nf。意思是输出的数据占m列,其中小数占n列
(不包括小数点),对其后一位采取四舍五入向上或者向下取近似值。如果把小数
部分指定为0,则不仅不输出小数,连小数点也不输出。C语言里面,默认%f小数点
后6位,如果想小数点后面16位,写成%.16lf 不够16位自动补0.当输入宽度小于数据
宽度时,则默认输出小数点后六位。m代表最小输出宽度为m,即实际位数多于m 时,则按实际位数输出,若实际位数少于定义的宽度m时,则补以空格或0。
3.输出的数据左对齐,用%-m.n f。当数据长度不超过m时,数据向左靠,右端补空
格。n对实数表示输出n位小数,对字符串表示截取字符个数。
e格式符:用格式声明%e指定以指数形式输出实数。若不指定输出数据所占宽度和数字
部分的小数位数,会自动给出数字部分的小数位数为6位,指数部分占5列。
printf(“%e”,123.456);//输出如下:1.23456e+002
o格式符:八进制整数输出。输出的数值不带符号。
注意:printf函数输出时,输出对象类型应与上述格式说明相匹配,否则会报错。
可以在printf函数格式控制字符串内包含转义字符。
如果想输出一个%字符,则连续输入两个%%即可。
5.0.3 用scanf函数输入数据
scanf函数的一般形式:scanf(格式控制,地址表列),格式控制含义和printf函数一样,地址表列由若干个地址组成的表列,可以是变量或者字符串的的首地址。
scanf函数的格式声明:如
scanf(“a=%f,b=%d,c=%lf”,&a,&b,&c);
注意 :如果在格式控制字符串中除了格式声明还有其他的字符,则在输入数据时在对应的位置上应输入与这些字符相同的字符。如
注意:c语言中scanf函数中用%d运行时输入数值要用空格隔开,而在用%c格式声明输入字符的时候,空格字符和转义字符都会作为有效字符输入,故输入字符时不要加空格,会把空格字符输入进去!
5.0.4 字符输入输出函数
c函数库提供了专门用于输入和输出字符的函数。
用putchar函数输出一个字符
可以调用系统函数库中的putchar函数(字符输出函数)在显示器输出一个字符,
其一般形式为putchar(c),是put character的缩写
如:
字符类型也属于整数类型,故输入的整数也可以和ASCII码互相转换。
用getchar函数输入一个字符
getchar函数的一般形式为:getchar()
getchar是get character的缩写,getchar函数没有参数,作用是从计算机终端(一般是键盘)输入一个字符,即计算机获得一个字符。genchar函数的值就是从输入设备得到的字符。getchar函数只能接收一个字符,要输入多个字符就要用多个getchar函数。 也可以在printf函数中输出刚接收
的字符。