1、C语言中,非零值为真,真用1表示;零值为假,假用0表示。

2、转义字符参考:


\a



蜂鸣,响铃 



\b



回退:向后退一格



\f



换页 



\n



换行



\r



回车,光标到本行行首 



\t



水平制表



\v



垂直制表 



\\



反斜杠



\'



单引号 



\"



双引号



\?



问号 



\ddd



三位八进制 



\0



空字符(NULL),什么都不做



\xhh



二位十六进制


说明:

1)\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。

2),\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。

注:

    文本文件的行结束符,传统上(MS)PC用 CRLF,苹果Mac用CR,unix 用 LF。

    CR -- 回车符,c语言'\r'

    LF -- 换行符, c语言'\n'

    不同计算机上c语言统一规定为:文本文件的行结束符一律变成一个符号LF,也就是换行符'\n'。“回车和换行符转换成一个换行符”,对PC(MS OS)而言,文本文件行结束符CRLF读入后,丢掉CR,留LF。例如fgets() 读入一行,行尾只有LF,没有CR。

3)\t光标向前移动四格或八格,可以在编译器里设置

4)\'在字符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用 '即可。

3、格式化输入输出

1)格式化输入

printf("格式串" [,表达式1,表达式2,···]);

其中,格式串的字符有两类:

① 以%开头引导的格式符,用于控制表达式的输出格式(有多少个表达式,就有多少个格式符);

② 非格式符:原样显示在屏幕上。

(1)字符串常量的输出

    无表达式,格式串中无格式符,如:

    printf("We are students.\n"); 

(2)格式符的语法

syntax: %[flag][width][.precision][h|l|L]type

a)[h|l|L]type

type字段采用一个英文字母来表达数据类型与格式:   




按十进制有符号整数形式输出





按十进制有符号整数形式输出(同d格式)



u



按十进制无符号数形式输出



o



按八进制无符号数形式输出



x



按十六进制无符号数形式输出,输出时使用小写字母 (a, b, c, d, e, f)



X



按十六进制无符号数形式输出,输出时使用大写字母(A, B, C, D, E, F)



f



按十进制小数形式输出浮点数,输出格式为:[-]ddd.dddddd(默认输出6位小数)



e



按十进制指数形式输出浮点数,输出格式为:[-]d.dddde[+/-]ddd,(e后面是指数)



E



按十进制指数形式输出浮点数,输出格式为:[-]d.ddddE[+/-]ddd,(E后面是指数)。

用e和E格式输出浮点数时,输出的是科学记数法形式,即小数点前面的整数部分固定为1位整数



g



按十进制形式输出浮点数,自动选择f或e格式中,输出长度小的格式输出;g格式不输出无用的0。



G



按十进制形式输出浮点数,自动选择f或E格式中,输出长度小的格式输出;G格式不输出无用的0。



c



输出单个字符



s



输出字符串



p



输出void指针,输出格式是:WIN32编程模式,只有XXXXXXXX一种格式



%



输出字符%(%用于引导格式控制符,在格式串中输出%号时,必须采用格式%%)


前缀修饰符:

L: 输出long double类型表达式必加

l: 输出长整型表达式必加

h: 输出短整型表达式必加

b)[width]

    width字段用来指定输出的数据项占用的字符列数,也称为输出域宽。缺省该字段,输出宽度按数据的实际位数输出;如果指定的输出宽度小于数据的实际位数,则突破域宽的限制,按实际位数输出;如果指定的域宽大于数据的实际位数,则默认在输出数据的左边输出空格,使输出的字符数等于列宽,也就是说,输出的数据在输出域中自动向右对齐。

width有以下三种情况:


n



一个非负整型常数,指定输出占用n列宽度。



0n



n为一个整型常数,输出占用n列,如果实际位数不足n列,数据前面补0,填满n列



*



输出域宽来自待输出表达式前面的一个整型表达式。


printf("%*d", 8+1, -3);

c)[.precesion]

      有以下4种情况:


缺省



对于f |e|E格式,表示小数点后输出6位小数,对于g |G格式,表示最多输出6位有效数字



.m



m为非负整型常数,对于浮点格式,指定小数点后面输出m位小数; s格式,表示只输出字符串的前面m个字符



.0



对于f |e|E格式,表示不输出小数点和小数,按整数形式输出



.*



表示precision来自待输出表达式前面的一个整型表达式


示例

View Code​​?​

​#include "iostream" ​

​#include "stdio.h" ​

​using​​ ​​namespace​​ ​​std; ​


​int​​ ​​main() ​

​{ ​

​double​​ ​​a=12.578,b=0.2572; ​

​int​​ ​​n=9,m=4; ​

​printf​​​​(​​​​"%.2f,%10.2E,%f,%e,%10g"​​​​,a,a,a,a,a); ​

​printf​​​​(​​​​"\n"​​​​); ​

​printf​​​​(​​​​"a=%.0f,a=%*.*f"​​​​,a,n,m,a); ​

​printf​​​​(​​​​"\n"​​​​); ​

​printf​​​​(​​​​"%.2f%%"​​​​,b*100); ​

​printf​​​​(​​​​"\n"​​​​); ​

​printf​​​​(​​​​"%s%6s%6.3s"​​​​,​​​​"ABCD"​​​​, ​​​​"ABCD"​​​​, ​​​​"ABCD"​​​​); ​

​return​​ ​​1; ​

​}​





注意,输出中任何一个字符都算作一位。

c语言格式大整理_基础知识

d)[flag]


缺省



输出正数时不输出正号;域宽大于数据实际位数时,域中左边补空格,数据靠右对齐;



+



输出正数时要输出正号;



-



域宽大于数据实际位数时,域中右边补空格,数据靠左对齐。



#



用于x |X格式:输出0x(格式x)或0X(格式X)。


1、格式化输入函数scanf

用法: scanf("格式串" ,地址1,地址2,···);

1)格式符

syntax: %[*][width][h|l|L]type

(1) [h|l|L]type


d



以十进制有符号整数形式转换输入数据



i



以十进制有符号整数形式转换输入数据(同d格式)



u



以十进制无符号整数形式转换输入数据



o



以八进制有符号整数形式转换输入数据



x |X



以十六进制有符号整数形式转换输入数据(x和X等效)



e|E|f|g|G 



以十进制浮点数形式转换输入数据,输入数据时,可以输入整型常量、小数形式实型常量或指数形式实型常量。



c  



输入一个字符(可输入控制字符)



s  



输入字符串(遇到第一个空格、TAB或换行符结束转换)


前缀修饰符:

L: 输入long double类型变量必加

l: 输入长整型变量或者double型变量必加

h: 输入短整型变量必加

(2) [width]

width字段用来指定输入数据的转换宽度,它必须是一个十进制非负整型常量。width表示读入多少个字符就结束本数据项的转换。如果没有指定width,则遇到空格 、TAB键、回车/换行符、非法输入则结束数据项的转换(%c格式除外)。

float a;int b;double c;

scanf("%f%3x%lf",&a,&b,&c);

若输入为:-1.5A8059¿

则a=-1.5, b=0xA80, c=59.0

(3) [*]号

    表示数据输入项要按指定格式进行转换,但不保存变量,即该%没有对应的变量。

    一般用%*c来吸收字符。

2、几点说明:

      编译程序只是检查printf 函数的调用形式,不分析格式控制字符串,如果格式字符与输出项的类型不匹配,不进行类型转换。(输出的数为随机)

      格式字符要用小写字母。

      格式控制字符串中可以包含转义字符。

      格式控制字符串中的普通字符则原样输出。

      输出项的参数除了常数、变量外还可以是表达式、函数调用。


编程是一种快乐,享受代码带给我的乐趣!!!