printf(%[-][0][4][.2][f],3.124);-:右对齐 4:占四个字节 0:空位用0填充
.n:表示截取的字符个数 f:输出浮点数
printf("%4d%4d\n", 1, 23);//右对齐,长度为4
printf("%-4d%-4d\n", 1, 23);//左对齐,长度为4
printf("%04d%04d\n", 1, 23);//右对齐,长度为4,且空位用零补齐
printf("%4d\n", 1234567);//整型,超出长度则输出全部位数
printf("%5.2f\n", 0.1211);//总长度为5,小数位为2
printf("%s\n", "helloworld" );//输出字符串
printf("%.2s", "oxoapkoe" );//输出字符串的前两位,右对齐占五个位置
int num = -1;
printf("%d %u", num, num);//%u 为无符号数,
//输出结果为1 4294967295(是四字节最大值)-1~1000 0...0 0001 存储为11...1
printf("%c",'c');//输出为字符c
printf("%c","c");//实际为'c','\0'
printf("%e\n", 0.001214);//1.214000e-003
printf("%d,%o,%x,%u", -1, -1, -1, -1);//十进制,八进制,16进制,无符号
//答案:-1,37777777777,ffffffff,4994967295
```![这里写图片描述](https://img-blog.csdn.net/20170623222449833?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzU3NTEyMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
%的转义使用% ,即%%d,其他的转义用\
putchar(c);//打印 一个字符
<div class="se-preview-section-delimiter"></div>
*#include<> 将在系统默认存放头文件的路径找文件
include “” 在当前目录下找,如果没找到,再到系统默认路径下找*
“`
*#include<> 将在系统默认存放头文件的路径找文件
#include "" 在当前目录下找,如果没找到,再到系统默认路径下找*
通过scanf函数可以接受任意的键盘的输入,如果输入的长度超过了应用给定的缓冲区,就会覆盖其他数据区,这称为“堆栈溢出”或“缓冲区溢出”。而且scanf函数有三个特点:
1. 取数据时遇到空格、回车、TAB就会停止;
2. scanf函数和都是从输入流缓冲区中读取数据的,而不是从键盘(终端)缓冲区读取值的。读取时遇到回车\n即结束,且回车\n会被读入输入缓冲数据流中,这样第二次的读入函数将输入缓冲区中的回车\n读取走了,没有等待键盘的二次输入。
3. scanf读取字符串时,会舍弃最后的回车符。
从第二个特点,我们可以看出在上例中,如果输入很长,最后以’\n’结束后,’\n’会覆盖后面的数据区,造成缓冲区溢出。