C中的scanf和printf

关于c的输入流

scanf()和scanf_s()

c的输出流

printf()和printf_s()

printf()和printf_s()的主要区别:printf_s()中%n这个格式说明符(format speifier)是不合法的。
%n对于的变元必须是*int类型,它的作用是把字符数输入stdout。
eg:

1
2
3
4
5
6
7
8
#include<stdio.h>
int main(void)
{
        int s;
        printf("12345%ns :", &s);
        printf("%d\n", s);
        return 0;
}

result:12345s :5

关于printf_s()的格式:

en format specifier begin with % flags field_width precision size_flag conversion_character
cn %是格式说明符的开始标志 影响输出的标志 输出的字符宽度 精度 尺寸标记(修饰后面的格式符号) 使用的输出转换类型(格式符号)
content % (-,+,space,#or0) number .n(结果保留n位小数) (h,hh,l,ll,j,z,t,L) (d/i,o,u,x,X,f/F,e,E,g,G,A/a,p,c,s)
meaning +:为有符号数添加符号
-:输出值在输出字段中左对齐
0:在输出值前面填充0至填满宽度
#:在八进制输出值前面加0,十六进制数前面加0x,浮点数包含小数点
space:在正数或者0前面加一个空格,而不是+号
用数字表示输出字段的宽度 常用于浮点数输出 h:表示short或unsigned short
hh:signed char或unsigned char
l:表示整数是long或者unsigned long
ll:表示整数是long long或者unsigned long long
L:long double
d/i:带符号的十进制整数
o,u,x:无符号的八,十,十六进制整数
X:使用大写的ABCDEF表示十六进制数,其他和x相同
f/F:带符号的小数
e/E:带符号和指数的小数
p:指针类型
c:单个字符
s:一个字符串

其中可插入转义字符:(以反斜杠\开头)
\b: 退格
\f: 换页
\n: 换行
\r: 回车,移动到当前行开头
\t: 水平制表符

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy