printf和scanf的基本使用
函数printf
int number = 10;
int value = 20;
printf("%i %i\n",number, value);
float floatValue = 10.0f;
printf("%f\n",floatValue);
double doubleView = 12.11;
printf("%lf\n", doubleView);
char charValue = 'a';
printf("%c\n", charValue);
- 指定位宽
- 如何指定位宽?%mi://m表示位宽,i表示数据类型
- 默认情况下位宽是右对齐,如果需要输出的类型的宽度不够,会在左边补空格
- 如果在位宽前面加上“-”号,就会改变位宽对齐方式,如果需要输出的类型的宽度不够,会在右边补空格
- 注意:
如果指定了位宽,但是实际输出的内容超出了宽度,会按实际宽度来输出
int number = 99999;
printf("%8i***\n",number);
printf("%-8i**\n",number);
printf("%2i\n",number);
- 补0
- 如果输出的内容宽度不够,就会用0来补,如果宽度已经够了,那么会按照实际宽度输出
int number = 99999;
printf("%010i***\n",number);
- %f的各种情况
- 为什么指定保留10位之后还是不对,因为float类型有效的位数是7位
- 默认情况下输出是保留6位
- 有效位数是从第一个开始计算
- 想要输出比较常的实型数据,那么就使用double
scanf函数
- 从输入缓冲区中获取用户输入的数据
- 只要缓冲区有数据,就不要用户输入
int num1, num2;
scanf("%i,%i", &num1, &num2);
- 如果输入类型与前面接收类型不一致,那么不会取这个数据,对应的接收变量也不会被修改
-
空格、回车、tab
遇到非char类型会被忽略
输入内容的时候scanf括号中如何写的就要如何输入数据,有标点就要输入标点,有空格就要输入空格