在 G++
环境下, 64 位整数是
long long
”
输入输出格式为 %lld”.
域宽及精度的描述
M:域宽,即对应的输出项在输出设备上所占字符数
若:实际数据宽度>M,按实际数据宽度输出。
实际数据宽度<M,左边补空。
N:精度,说明输出的实型数的小数位数。
几点说明:
编译程序只是检查 printf 函数的调用形式,不分析格式控制字符串,如果格式字符
与输出项的类型不匹配,不进行类型转换。(输出的数为随机)
格式字符要用小写字母。
格式控制字符串中可以包含转义字符。
格式控制字符串中的普通字符则原样输出。
输出项的参数除了常数、变量外还可以是表达式、函数调用。
%g,%f 和%e 这三个格式用于打印浮点值。
%g 格式用于打印那些不需要按列对齐的浮点数特别有用。其作用有二:
一,去掉该数尾多余的零(没有达到六位的数)
二,保留六位有效数字(多余六位的)
%e 格式用于打印浮点数时,一律显示地使用指数形式:例如:输出圆周率时
是:3.141593e+00
两者的区别:
%g 格式打印出的数是总共 6 位有效数字
%e 格式打印出小数点后的 6 位有效数字
%f 禁止使用指数形式来表示浮点数。因此圆周率输出为:3.141593
(但注意它的精度要求:也是小数点后 6 位有效数字)
(8)%%格式用于打印一个%字符。
(9)%E 和%G 只是在输出时用大写字母(E)代替了小写字母(e)
输出正负号的技巧,例如:
printf("%+d %+d %+d\n",-5,0,5);
“
只要在中间加个 +”号就行。作用是输出符号位(即,数的正负号)
‘
如果不希望正数的前面出现 +’号,可用下面的方法
“ ”
只要在中间加个
号(即:空格)就行。例如:
作用:如果一个数是非负数,就在它的前面插入一个空格。
int i;
for(i=-3;i<=3;i++)
printf("% d\n",i); //注意%和 d 之间有一个空格
sscanf()的使用技巧:
分解字符串,很多功能都需要正则表达式的知识,所以就介绍一下最简单的
几种用 sscanf
来分解字符串 的用法。
1.
char str[100],str1[100],str2[100];
gets(str);
sscanf(str,”%s%s”,str1,str2);
将读入的一整行字符串按空格,制表符或回车符分割成两个字符串。
2
取指定长度的字符串。如在下例中,取最大长度为 4 字节的字符串。
sscanf("123456 ", "%4s", str);
基本整型:两个字节,十六个 bit(位)