2020.7.20
1. 数据的输入输出
使用输入输出函数时,需要在开头加上编译预处理命令 #include <stdio.h>
键盘输入: scanf("…");
屏幕显示:printf("…");
printf()
格式字符 | 类型 |
---|---|
%d | 输出十进制有符号int型 |
%u | 输出十进制无符号int型 |
%f | 以小数形式(6位)输出float,double型 |
%e | 以标准指数形式输出float,double型 |
%c | 字符型单个字符 |
%ld | 输出长整型 |
%hd | 输出短整型 |
格式修饰符 | 类型 |
---|---|
m | 数据占用的最小域宽,右对齐 |
-m | 数据占用的最小域宽,左对齐 |
.n | 显示精度 |
scanf()
指定的格式字符必须和输入的字符的类型相同,否则出现乱码。
出现以下任何一种情况都会认为一个数据输入结束:
- 空格,tab,回车
- 达到输入位宽
- 遇到非法字符
例: scanf("%2d%2d",&a &b);
直接输入1234的话他会把前面两个分配给a 后两个分配给b。
scanf() 的返回值=正确读入的数据项数
格式字符串中的普通字符应原样输入。
格式字符 | 类型 |
---|---|
%d | 输入十进制int型 |
%f,%e | 输入float型,不能指定输入数据精度,可指定位宽 |
%c | 输入一个字符可以为空白 |
scanf()的修饰符“*”:输入项在读入后不赋值给相应的变量。
例如:
scanf("%2d%^2d%2d",&a,&b);
输入123456时,a=12,b=56.
-
调用scanf()函数时需要用%f和%lf来区分float和double类型的数。因为调用scanf()输入数据时,通过地址指向变量。%f告诉编译器scanf()在该地址存储一个float型数。
-
调用printf()输出数据时,编译器float参数自动转换为double类型,printf()无法区分float和double ,所以直接使用%f。
2. 单个字符的输入和输出
字符输出函数putchar()
语法: putchar(a)
说明:向屏幕输出一个字符,字符型变量a的值。
字符输入函数getchar()
语法:a=getchar()
说明:从键盘接收的字符作为getchar()的函数值,无参数。