scanf与printf
#include <iostream>
using namespace std;
int main(){
printf("%05lld\n",100);
printf("%+7.4d\n",100);
printf("%+7.2f\n",10.2);
return 0;
}
/*输出结果:
00100
+0100
+10.20
格式 | 作用 |
---|---|
%c | 字符 |
%s | 字符串 |
%d、%i | 有符号十进制整数 |
%u | 无符号十进制整数 |
%o | 无符号八进制整数 |
%x、%X | 无符号十六进制整数 |
%f | 十进制浮点数 |
%g、%G | 浮点数,自动选择%f或%e |
%e、%E | 科学记数法,浮点数 |
%p | 指针 |
修饰符 | 作用 |
---|---|
%数字 | 最低宽度,%0数字则表示填充0 |
%.数字 | %d表示整数最低位数,不足自动在前补0 %f、%e表示浮点数小数位数 %g表示浮点数有效位数 %s表示 |
+ | 输出数值符号 |
- | 左对齐 |
hh | signed char |
h | signed short |
ll | signed long long int |
L | long double |
cin与cout
流操作算子必须在cin流或者cout流中使用才有效,头文件为iomanip,setw(n)只对紧邻的输入或输出生效1次,其它流操作算子一直有效,需要使用resetflags()取消
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
cout<<setfill('*')<<setw(5)<<10<<endl;
cout<<fixed<<setprecision(4)<<12.12<<endl;
cout<<scientific<<setprecision(4)<<12.12<<endl;
cout<<resetiosflags(ios::scientific)<<12.0<<endl;//cancel scientific flag
return 0;
}
/*输出结果:
***10
12.1200
1.2120e+01
12
流操纵算子 | 作 用 | |
---|---|---|
*dec | 以十进制形式输出整数 | 常用 |
hex | 以十六进制形式输出整数 | |
oct | 以八进制形式输出整数 | |
setbase(b) | 设置输出整数时的进制,b=8、10 或 16 | |
fixed | 以小数形式输出,输出浮点数末尾的0 | |
scientific | 以科学计数法形式输出浮点数 | |
setprecision(n) | 设置输出浮点数的精度为 n (1)在不使用 fixed 和 scientific 方式输出的情况下,n 即为有效数字最多的位数,如果有效数字位数超过 n,则小数部分四舍五人,或自动变为科学计数法输出并保留一共 n 位有效数字。 (2)在使用 fixed 方式和 scientific 方式输出的情况下,n 是小数点后面应保留的位数。 | |
setw(w) | 指定输出宽度为 w 个字符,或输人字符串时读入 w 个字符,只生效一次 | |
setfill(c) | 在指定输出宽度的情况下,输出的宽度不足时用字符 c 填充(默认情况是用空格填充) | |
left | 左对齐,即在宽度不足时将填充字符添加到右边 | |
*right | 右对齐,即在宽度不足时将填充字符添加到左边 | |
setiosflags(flag) | 将某个输出格式标志置为 1 | |
resetiosflags(flag) | 将某个输出格式标志置为 0 | |
boolapha | 把 true 和 false 输出为字符串 | 不常用 |
*noboolalpha | 把 true 和 false 输出为 0、1 | |
showbase | 输出表示数值的进制的前缀 | |
*noshowbase | 不输出表示数值的进制.的前缀 | |
showpoint | 总是输出小数点和末尾的0 | |
*noshowpoint | 只有当小数部分存在时才显示小数点 | |
showpos | 在非负数值中显示 + | |
*noshowpos | 在非负数值中不显示 + | |
*skipws | 输入时跳过空白字符 | |
noskipws | 输入时不跳过空白字符 | |
uppercase | 十六进制数中使用 A~E。若输出前缀,则前缀输出 0X,科学计数法中输出 E | |
*nouppercase | 十六进制数中使用 a~e。若输出前缀,则前缀输出 0x,科学计数法中输出 e。 | |
internal | 数值的符号(正负号)在指定宽度内左对齐,数值右对 齐,中间由填充字符填充。 |