这几天,我也是刷了一些题目,在题目中寻找到自己的一些基础不够牢固的地方,在这里分享给大家,和大家一起再巩固巩固。
1,#可以用来控制进制前导显示
如,我们想将一些数字用八进制,十六进制来表示,希望计算机能在其前面加0,0x来分辨其是一个八进制,十六进制的数,那么这个时候,用#就可以很好实现。
#includeint main() { int i=8; printf("%on",i);//10 printf("%#o",i);//010 return 0; }
2,打印16进制数时,用%x,x的大小写会决定后面的打印出来的十六进制数的字母的大小写。
#includeint main() { int i=15 printf("%xn",i);//f printf("%Xn",i);//F return 0; }
3,printf可以使用格式控制串%md,来控制输出域宽为m的十进制数
这个较为基础
#includeint main() { int i=3; printf("%dn",i);//3 printf("%2dn",i);// 3 return 0; }
同样可以用于其他的格式打印符。
4,通过scanf函数的%m可以指定输入数的域宽,按此域宽截取需要的数据
#includeint main() { int i; scanf("%2d",&i);//不论输入多大的数,最终只会截取前两个 printf("%d",i); return 0; }
5,通过printf函数的%0格式控制符,输出数值的指定左面不使用的空位置自动补上0.
#includeint main() { int i=3; printf("%dn",i);//3 printf("%02d",i);//03 return 0; }
6,使用long int 时需用“%ld”来打印,long long 则用lld否则会出现截断现象,当然不同编译器情况可能不同。
此处就不用特殊情况来举例了。
6,EOF是文件结束符,可以用其来实现连续多组输入。
下面介绍三种方法实现
1,有规定数量的
#includeint main() { int n=0; while(n--) scanf(......); return 0; }
2,实现连续读入
一
#incudeint main() { int n; while(scanf("%d",&n)!=EOF); return 0; }
二
#incudeint main() { int n; while(scanf("%d",&n),n!=0); return 0; }
以上就是这几天刷题刷到的知识点不够牢固的地方了,拿出来和大家一起再复习复习。
如有错误请联系修改



