• 21、C语言中输入输出格式控制(1)


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

    2、转义字符参考:

    \a

    蜂鸣,响铃 

    \b

    回退:向后退一格

    \f

    换页 

    \n

    换行

    \r

    回车,光标到本行行首 

    \t

    水平制表

    \v

    垂直制表 

    \\

    反斜杠

    \'

    单引号 

    \"

    双引号

    \?

    问号 

    \ddd

    三位八进制 

    \0

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

    \xhh

    二位十六进制

    说明:

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

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

    注:

        文本文件的行结束符,传统上(MSPCCRLF,苹果MacCRunix LF

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

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

        不同计算机上c语言统一规定为:文本文件的行结束符一律变成一个符号LF,也就是换行符'\n'。“回车和换行符转换成一个换行符”,对PCMS 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后面是指数)

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

    g

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

    G

    按十进制形式输出浮点数,自动选择fE格式中,输出长度小的格式输出;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来自待输出表达式前面的一个整型表达式

    示例

    #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;
    }
    

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

    wps_clip_image-8555

    d[flag]

    缺省

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

    +

    输出正数时要输出正号;

    -

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

    #

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

    参考

    [1] 进一步阅读

    http://blog.163.com/zhoumhan_0351/blog/static/39954227200972291615439/

  • 相关阅读:
    [na]wac无线控制器集中转发部署的几种情况
    [na]windows2008-AD域的安装
    [na]数据链路层&网络层协议小结截图版
    [na]tcp&udp层各协议小结
    [na]交换机接口文档
    [na]二层sw数据交换
    [na]wireshark排查打印机问题
    [na]ip包格式
    [na]ping提示&各系统默认的TTL值
    【VS开发】C++异常处理操作
  • 原文地址:https://www.cnblogs.com/mydomain/p/1995775.html
Copyright © 2020-2023  润新知