C语言基础-printf和scanf
在%和转换字符之间插入修饰符可修饰基本的转换说明
printf()的转换说明修饰符
注意 float类型的转换
对于浮点类型 有用于 double和long double类型的转换说明 却没有float 类型的。
输入程序:
// width.c --字段宽度
#include <stdio.h>
#define PAGES 1000
int main(void){
printf("*%d*\n",PAGES);
printf("*%2d*\n",PAGES);
printf("*%-10d*\n",PAGES);
printf("*%10d*\n",PAGES);
return 0;
}
输出结果:
- 第1个转换说明号%d 不带任何修饰符,其对应的输出结果与带整数字段宽度的转换说明的输出结果相同。
- 第2个转换说明是%2d,其对应的输出结果应该是2字段宽度。因为待打印的整数有4位数宇,所以字段宽度自动扩大以符合整数的长度。
- 第3个转换说明是%10d,其对应的输出结果有10个空格宽度,实际上在两个星号之间有6个空格和4位数字,并且数字位于字段的右侧。
- 最后一个转换说明是%-10d,其对应的输出结果同样是 10 个空格宽度,-标记说明打印的数字位于字段的左侧。
- 本例的第 1个转换说明是%f 在这种情况下,字段宽度和小数点后面的位数均为系统默认设置,即字段宽度是容纳带打印数字所需的位数和小数点后打印6位数字。
- 第2个转换说明是%e。默认情况下,编译器在小数点的左侧打印1个数字,在小数点的右侧打印6个数字。这样打印的数字太多!解决方案是指定小数点右侧显示的位数,
- 请注意,第4个和第6个例子对输出结果进行了四舍五入。另外,第6个例子用E代替了e。
- 第7个转换说明中包含了+标记,这使得打印的值前面多了一个代数符号 (+)
- 注意,转换说明号%010.2f 的第1个0是标记,句点(.)之前、标记之后的数字是指定的字段宽度
使用scanf()
- 如果scanf()读取基本变量类型的值 在变量名前加&
- 如果scanf()把字符串读入字符数组中 不能使用&
CSDN-Ada助手: 推荐 算法 技能树:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm