5、输出、输入的使用 强制类型转换
输出、输入的使用 强制类型转换
输出使用
字符串常量与字符常量的不同
'a’为字符常量,“a”为字符串常量
‘a’ ‘a’ ‘\0’
printf();
//%5d,以5个字符输出,没有的字符以空字符填充,默认是右对齐
//%05d,以5个字符输出,没有的字符0填充,默认是右对齐
//%-5d,以5个字符输出,没有的字符以空字符填充,-代表指定为左对齐
//0和-不能同时使用
//%ld,默认小数点后面有6位,不够补0
//%8.3lf,代表总有8个字符,3代表小数点后有3位
putchar()
putchar()会返回输出成功的字符,即参数c。若返回EOF则代表输出失败。
char ch = 'a';
putchar(ch);//把ch的内容输出到屏幕
//printf("\n");
putchar('\n');
输入的使用
scanf();
getchar();//只读取一个字符
强制类型转换
(类型)变量名
int a = 10;
//a只有在此语句执行是,才强制转换成double类型,其它的地址还是int类型
printf("%lf\n",(double)a);
转换的原则:
占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。
//强制类型转换的应用
//a)不要直接通过%d,打印一个浮点型变量,得不到想要的结果,要想得到结果,强制类型转换
double a = 11.11;
printf("%d\n",(int)a);
//b)不要通过%f或%lf,打印一个整形变量,得不到想要的结果,要想得到结果,强制类型转换
int a = 10;
printf("%lf\n",(double)a);
//c)相除得到小数问题
//1)两个整数相除,只是取整数,不会带小数
int a = 1/2;//a = 0;
//2)要想得到小数的结果,分子分母至少有一个是小数
double a;
a = 1.0/2;//a = 0.5
a = 1/(double)2;