数据输入输出的概念及在C语言中的实现
1.输入输出的基准点为 内存
向内存中写入便为输入
字符数据的输入输出
1.putchar
putchar函数 : 向终端输入一个字符 返回值为输入对应数字的ASCII码值,也可直接输入字符
2.getchar
getchar函数有缓冲区(队列的数据结构),遵循FIFO先进先出。这样可以使高速设备不用一直等待低速设备响应,不占用其他设备的使用,避免资源浪费。
例:输入一个小写字母,使其转化为对应大写字母
格式输入与输出
printf函数
输入数据类型为const char* 函数一般格式为printf("%d\n",...,...)
1.省略号为变参函数,可传可不传,%d为占位符 程序运行后被printf函数下一个参数代替 占位符个数应当与后面传递参数个数保持一致(函数形参左右值都可以)
2.格式字符
(1) d ,i
- 1.%d按十进制整型数据的实际长度输出。
- 2.%md m为指定的字符宽度。若数据位数小于m,则左端补空格;若数据位大于m,则输出数据本身宽度。
- 3. %0md 补零 或补空格 (若m为负 则在数据右端补空格 ,不允许右边补0。若m为正,则在前补0。)
- 4.%ld 为输出的长整型数据。 整型数据范围
- 如若:超过整型数据范围且使用%d,则会出现以下提醒
将上述代码中%d改为%ld,将正常执行程序
(2)%o,%u,%x,%X为相同数据类型的不同解释
例:%o 将会将数据以八进制整数形式输出;%u将会以无符号整型输出。
(3)%e,%E 将直接输出科学计数法
(4)%f,%F 将数据类型改为浮点数输出
1.浮点数输出数据默认为6位有效数字。
2. %m.nf m为包含小数点本身宽度 ,n为小数点保留的位数。
3.m可被省略 表示小数点后保留有效数字 例:%.2f
(5)%c表示字符 将字符对应的ASCII码打印出
(6)%s 打印字符型常量
(7)%p 打印地址指针 任何类型指针都行
(8)%% (若需要打印99.9%,则需先%f打印出浮点数99.9,后使用%%打印百分号)
2.scanf函数 const char * " "
向变量输入数据 %d 十进制有符号输入
注意事项:
1. scanf函数通过取地址实现,应当为变量地址 如:&a
2. 输入多个数字时,可按空格/tab/回车
3.无法在被调函数中修改主调,所以进行取地址操作
4.若没有取地址&,则会认为输入为随机数,致程序崩溃。
5. 输入小数时 需区分单双精度 ,scanf默认变量实际空间为4字节 ,若为double型 则变为%lf,
float型为%f。(输入函数不分,因为printf函数不取地址,且必转)