printf & scanf(一

输入输出函数(printf 和 scanf)是C语言中非常重要的两个函数,也是学习C语言必学的两个函数。在C语言程序中,几乎没有一个程序不需要这两个函数,尤其是输出函数(printf),所以这两个函数必须要掌握。
如果在程序中要使用 printf 或者 scanf,那么就必须要包含头文件 stdio.h。因为这两个函数就是包含在该头文件中的。

printf的原型

extern int printf(const char *format,...);

printf的一般格式

printf(格式控制,输出表列);

如:
printf(“a=%d,b=%c\n”,a,b)

1.格式控制包括格式声明普通字符
2.其中 %d 为格式声明,a,b 为输出表列

输出控制符

格式控制符

%  格式说明引导符。
-  指定左对齐输出。
0  指定空位填零。
m.n 指定输出域宽度及精度。
l.h 输出长度的修正。

格式字符

  • %d :输出一个有符号的十进制整数
    %ld :输出 long(长整形)数据
    %lld :输出 long long(双长整形)数据
  • %c :输出一个字符
  • %s :输出一个字符串
  • %f :对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位.
  • %lf :对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数15位.
  • %e :指定以指数形式输出实数
  • %i :作用与%d相同,输出十进制整型数据但用得比%d少
  • %o :输出一个八进制的整型数,前面不带0
    %#o :输出一个八进制的整型数,前面带0
  • %x :输出一个十六进制的整型数,前面不带0x
    %#x :输出一个十六进制的整型数,前面带0x, 如果x大写,则显示时也是大写
  • %u :不带符号的十进制整数
  • %g :用来输出浮点数,系统自动选 f 格式或 e 格式输出,选择其中长度较短的格式,不输出无意义的 0

转义字符

\a:蜂鸣,响铃
\b:回退:向后退一格
\f:换页
\n:换行,光标到下行行首
\r:回车,光标到本行行首
\t:水平制表
\v:垂直制表
\\:反斜杠
\’:单引号
\":双引号
\?:问号
\ddd:三位八进制
\xhh:二位十六进制
\0:空字符(NULL),什么都不做

%x、%X、%#x、%#X 的区别

# include 
int main()
{
    int i = 47;
    printf("%x\n", i);   
    printf("%X\n", i);   
    printf("%#x\n", i);   
    printf("%#X\n", i);   
    return 0;
}

输出结果:
2f
2F
0x2f
0X2F

如果是小写的x,输出的字母就是小写的;
如果是大写的X,输出的字母就是大写的;
如果加一个#,就以标准的十六进制形式输出。
最好是加一个#,否则如果输出的十六进制数正好没有字母的话会误认为是一个十进制数呢!

如何输出 %d、\ 和双引号

# include 
int main()
{
    printf("%%d\n");		//输出 % 
    printf("\\\n");		//输出 / 
    printf("\"\"\n");		//输出 "" 
    return 0;
}

你可能感兴趣的:(printf & scanf(一)