#include <stdio.h>

int main(int argc, const char * argv[]) {

//整形输出
printf("%d,%d",3,4);
printf("\n");
//整形输出的字符宽度。%md
printf("%4d,%4d",3,4);
printf("\n");

//长整形的格式输出
printf("%ld,%ld",(long)3,(long)4);
printf("\n");
//长整形相同能够设置输出的字符宽度
printf("%8ld,%8ld",(long)3,(long)4);
printf("\n");


//按8进制的格式输出%o
int a = -1;
printf("%d,%o",a,a);
printf("\n");
printf("%d,%13o",a,a); //设置字符的输出宽度
//-1 在内存中得 存放形式是(以补码的方式存在):eg:111111111(第一位为符号位)
printf("\n");

//x符号输出16进制
int b = -1;
printf("%x,%o,%d",b,b,b);

printf("\n");

//u为无符号输出
int c = -1;
unsigned int d = 65535;
printf("%x,%o,%d,%u",c,c,c,c);
printf("\n");
printf("%x,%o,%d,%u",d,d,d,d);

printf("\n");

//c格式符,输出一个字符
char e = 'a';
printf("%c,%d",e,e);

printf("\n");

//s格式符,用来输出一个字符串
// char f[]="china";
// prinf("%s",f);
#warning 输出字符串有问题

//f格式符,用来输出实数(包含:单精度、双精度),以小数的形式输出
//1、%f格式符。不指定字段的宽度,有系统自己主动指定,使整数部分所有输出,而且输出6位小数。注意:输出数字中并不是所有数字都是有效数字,单精度实数有效位通常是7位。双精度有效位为16位。给出小数6位。
// float x,y;
// x = 11111111.111;y=22222222,222;
// printf("%f \n",x+y); //从结果能够看出来仅仅有7位是有效的。
double x,y;
x = 11111111.111;y=22222222.222;
printf("%f \n",x+y);
//2、%m.nf,指定输出的数据供占有m列。当中小数位n位,假设数值大于m。就会在左边不空格。
//3、%-m.nf与%m.nf基本相同。仅仅是输出的数值向左端靠,右端补空格。


//符号e,以指数的形式输出
//1、%e,不指定输出数据所占有的宽度,和数字部分的小数的位数,有的c编译系统自己主动指出给出的数字是小数部分为6位,指数部分为5位。(eg:+002)
printf("%e",12389.454566);//而这个系统是默认栈4位
printf("\n");

//%m.ne和%-m.ne,中的m,n,- 和前面的一样。
double f = 123.456;
printf("%e %10e %10.2e %.2e %-10.2e",f,f,f,f,f);
printf("\n");

//格式符g,用来输出实数,它依据数字的大小,自己主动选取f格式或者e格式
double g = 123.456;
printf("%f %e %g",g,g,g);
printf("\n");

double h = 1234567123.456;
printf("%f %e %g",h,h,h);


//注意:一个格式符以%开头,以上面的格式符之中的一个结尾。中间能够插入附加的修饰符,事实上就是普通的字符
// printf("c=%cf=%fs=%s",c,f,s);//事实上f=是普通的字符
printf("\n");

//输出%符号
printf("%f%%",1.0/3);

getchar();
return 0;
}

以下是对应的一些格式符号输出的图片:输出

printf中的使用(c语言)_格式输出

printf中的使用(c语言)_数据_02


以下是转义字符的使用“\”

printf中的使用(c语言)_单精度_03