Zhao70's Blog

printf和scanf的一些用法

printf()函数

%%打印一个百分号

1
2
3
printf("%%\n");
\\输出结果
\\%

printf()的转换说明修饰符

.数字

%5.2f打印一个浮点数, 字段宽度为5, 其中小数点后有两位

1
2
double per = 4.23;
printf("%5.2f\n", per);

-

待打印项向左对齐

1
printf("%-10d", val);

+

若符号值为正, 则在值前面显示加号; 若为负,则在值前面显示减号

1
2
3
4
5
printf("%+5.2f\n", per);
printf("%+5.2f\n", -1 * per);
\\output
\\+4.23
\\-4.23

空格

若符号值为正,则显示前导空格; 若为负,则在值前面显示减号

1
2
3
4
5
printf("% 5.2f\n", per);
printf("% 5.2f\n", -1 * per);
\\output
\\ 4.23
\\-4.23

printf()的返回值

printf()的返回值为打印字符的个数

1
2
3
4
int num = printf("Hello World\n");
printf("%d\n", num);
\\output
\\12

scanf()的返回值

scanf()函数返回成功读取的项数

printf()和scanf()的*修饰符

printf()中的*

用 * 修饰符代替字符宽度

1
2
3
4
double per = 4.23;
int width = 5;
int percent = 2;
printf("%*.*f\n", width, percent, per);

scanf()中的*

将 * 放在% 和 转换字符之间会使得scanf()跳过相应的输入项

1
2
3
4
5
6
scanf("%*d%*d%d", &val);
printf("%d\n", val);
\\input
\\4 5 6
\\output
\\6