1、数据输入与输出
(1)所谓输入与输出是以计算机为主题而言的。
(2)本博客介绍的是向标准输出设备显示器输出数据的语句。
(3)在C语言中,所有数据输入输出都是由库函数完成,因此都是函数语句。
(4)在使用C语言库函数时,要用预编译命令#include将有关“头文件”包括到源文件中。使用标准输入输出库函数时要用到"stdio.h"文件,因此源文件开头应有以下预编译命令:
#include<stdio.h>或#include"stdio.h"
stdio是standand input&output的意思。
(5)考虑到printf和scanf函数使用频繁,系统允许在使用这两个函数时可不加#include<stdio.h>
2、字符数据的输入输出
(1)putchar函数(字符输出函数):putchar函数是字符输出函数,其功能是在显示器上输出单个字符。其一般形式为:putchar(字符变量)
例如:putchar('A'); //输出大写字母A
putchar(x); //输出字符变量x的值
putchar('101') //也是输出字符A,注:101为八进制
putchar(' ') //换行
注:(1)对控制字符则执行控制功能,不在屏幕上显示。
(2)使用本函数前必须要用文件包含命令:#include<stdio.h>
例:
#include <stdio.h> void main() { char a='B',b='o',c='k'; putchar(a);putchar(b);putchar(b);putchar(c);putchar(' ');putchar(a);putchar(b); putchar(' '); putchar(b);putchar(c); }
(2)getchar函数(键盘输入函数):getchar函数的功能是从键盘上输入一个字符。其一般形式为:getchar();通常把输入的字符赋予一个字符变量,构成赋值语句,如:cahr C;C=getchar();
例:
#include <stdio.h> void main() { char C; printf("input a character "); C=getchar(); putchar(C); putchar(' '); }
3、格式输入与输出:printf函数(格式输出函数):printf函数称为格式输出函数,其最末一个字母f即为”格式“(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器的屏幕上。
(1)print函数调用的一般形式:printf函数是一个标准库函数,它的函数原型在头文件”stdio.h"中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。
printf函数调用的一般形式为:printf(“格式控制字符串”,输出列表)其中格式控制字符串用于指定输出格式。格式控制字符串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数、位数等。常见的有:
#include <stdio.h> void main() { int a=88,b=89; printf("%d%d ",a,b); printf("%d%d ",a,b); printf("%c,%c ",a,b); printf("a=%d,b=%d",a,b); }
(2)标志: 标志字符为-、+、#、空格四种,其意义下表所示:
标志 | 意义 |
- | 结果左对齐,右边填空格 |
+ | 输出符号(正号或负号) |
空格 | 输出值为正时冠以空格,为负时冠以负号 |
# | 对c,s,d,u类无影响;对o类, 在输出时加前缀。对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点 |
(3)输出最小宽度:用十进制整数来表示输出的最少位数。 若实际位数多于定义的宽度,则按实际位数输出, 若实际位数少于定义的宽度则补以空格或0。·
(4)精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符, 则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
(5)长度:长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。
例:
#include <stdio.h> void main() { int a=15; float b=123.1234567; double c=12345678.1234567; char d='p'; printf("a=%d,%5d,%o,%x ",a,a,a,a); printf("b=%f,%lf,%5.4lf%e ",b,b,b,b); printf("c=%lf,%f,%8.4f ",c,c,c); printf("d=%c,%8c ",d,d); }
注:输出列表中的求值顺序,不同编译器不一定相同,可以从左到右,也可以从右到左。
区分:单个printf语句和多个printf语句输出结果是不同的。
#include <stdio.h> void main() { int i=8; printf("%d %d %d %d %d %d ",++i,--i,i++,i--,-i++,-i--); }
#include <stdio.h> void main() { int i=8; printf("%d ",++i); printf("%d ",--i); printf("%d ",i++); printf("%d ",i--); printf("%d ",-i++); printf("%d ",-i--); }