格式输出:
printf(格式控制, 输出表列);
%d 十进制数 %md m为指定的宽度 若数据位数小于m,则左端补以空格;若大于m,则按实际位数输出
%ld 长整型数据 %mld 指定字段宽度
%o 八进制整数形式 %mo
%x 十六进制整数形式 %mx
%u unsigned型数据,它也可用%o或%x格式输出
%c 一个字符 %mc
%s 字符串 有几种用法
1.%s
printf("%s", "China");
输出 China
2.%ms 控制为m列 若串长小于m, 则左补空格,大于则突破m限制,将字符串完全输出
3.%-ms 若串长小于m, 则右补空格(居左)
4.%m.ns 输出占m列,取字符串左端n个字符.这n个字符输出在m列的右侧,左补空格
5.%-m.ns m.n同上,这n个字符输出在m列的左侧,右补空格.若n>m,则m自动取n值,保证n个字符正常输出
%f 输出实数(包括单.双精度),以小数形式输出
1.%f 输出全部整数部分,输出6位小数
2.%m.nf 指定输出的数据共占m列,其中有n位小数.若数值长度小于m,则左端补空格
3.%-m.nf 指定输出的数据共占m列,其中有n位小数.若数值长度小于m,则右端补空格
%e 以指数形式输出实数
1.%e 不指定输出数据所占的宽度和数字部分的小数数位,数值按规范化输出
2.%m.ne 和 %-m.ne 输出占m列,n指输出的数据的小数部分(尾数)的小数数位,-同上
%g 输出实数,根据数值大小,自动选择f格式或者e格式(选择输出宽度小的),且不输出无意义的零
格式控制中可以包含转义字符,如'\n' '\t' '\b' '\r'
输出%的方法 printf("%f%%", 1.0/3) 输出: 0.333333%
格式输入
scanf(格式控制, 地址表列) sscanf
类似printf .以例程解释
1. scanf("%3d%3d", &a, &b); //列数截取数据
input -> 123456
then -> a = 123 b = 456
2. scanf("%2d %*3d %2d", &a, &b) //*表示跳过列数读取数据
input -> 12 345 67
then -> a = 12 b = 67
3. scanf("%d, %d", &a, &b)
input -> 1, 4 //在格式控制中,如果有非格式说明外的字符,应该在输入时在对应位置输入该字符
scanf("%d %d", &a, &b) //输入时,两数据应有不少于格式控制中的空格
scanf(&quo