Printf输出格式.
printf输出格式 格式代码 A ABC ABCDEFGH %S A ABC ABCDEFGH %5S ####A ##ABC ABCDEFGH %.5S A ABC ABCDE %5.5S ####A ##ABC ABCDE % - 5S A#### ABC## ABCDEFGH ### Printf输出格式详解 在C语言中,`printf`函数是一种非常重要的输出工具,它能够按照用户定义的格式输出各种类型的数据。本文将基于提供的示例深入探讨`printf`的各种输出格式及其用法。 #### 字符串输出格式 我们来看一下字符串输出的基本格式: - `%s`:用来输出字符串,输出直到遇到`\0`为止。 - 示例:`%s A ABC ABCDEFGH`,其中`A`、`ABC`、`ABCDEFGH`分别输出完整的字符串。 - `%5s`:用来输出宽度为5的字符串,不足5个字符则左侧填充空格。 - 示例:`%5s ####A ##ABC ABCDEFGH`,其中`####A`表示`"A"`被左侧填充了四个`#`;`##ABC`表示`"ABC"`被左侧填充了两个`#`;`ABCDEFGH`保持不变。 - `%.5s`:用来输出固定长度的字符串,超出部分被截断。 - 示例:`%.5s A ABC ABCDE`,其中`ABCDE`为`ABCDEFGH`的前五个字符。 - `%5.5s`:结合了宽度和长度控制,宽度为5且长度也为5。 - 示例:`%5.5s ####A ##ABC ABCDE`,其中字符串被截断并且左侧填充`#`至总长度为5。 - `%-5s`:宽度为5,但输出左对齐。 - 示例:`%-5s A#### ABC## ABCDEFGH`,其中字符串右侧填充`#`至总长度为5。 #### 整型数值输出格式 接下来,我们看一下整型数值的输出格式: - `%d`:输出有符号的十进制整数。 - 示例:`%d 1 -12 12345 123456789` - `%6d`:宽度为6,不足时左侧填充空格。 - 示例:`%6d #####1 ###-12 #12345 123456789` - `%.4d`:固定长度为4,不足时左侧填充0。 - 示例:`%.4d 0001 -0012 12345 123456789` - `%6.4d`:宽度为6且固定长度为4,不足时左侧填充空格,左侧再填充空格达到宽度。 - 示例:`%6.4d ##0001 #-0012 #12345 123456789` - `%-4d`:宽度为4,输出左对齐。 - 示例:`%-4d 1#### -12# 12345 123456789` - `%04d`:宽度为4,不足时左侧填充0。 - 示例:`%04d 0001 -012 12345 123456789` - `%+d`:输出正数时前面加上`+`号。 - 示例:`%+d +1 -12 +12345 +123456789` #### 浮点数值输出格式 然后是浮点数值的输出格式: - `%f`:输出带有小数点的十进制数,默认精度为6。 - 示例:`%f 1.000000 0.010000 0.000123 12345.678900` - `%10.2d`:宽度为10,精度为2。 - 示例:`%10.2d ######1.00 #####0.01 ######0.00 ##12345.67` - `%e`:指数形式,小数点前一位,小数点后六位。 - 示例:`%e 1.000000e+00 1.000000e-02 1.234500e-04 1.234568e+04` - `%.4e`:指数形式,精度为4。 - 示例:`%.4e 1.0000e+00 1.0000e-02 1.2345e-04 1.2346e+04` - `%g`:根据数值大小和精度自动选择%f或%e形式。 - 示例:`%g 1 0.01 0.00012345 12345.7` #### 格式化字符串的其他控制符 此外,`printf`函数支持更多的格式控制符,包括: - `%%`:输出一个`%`符号。 - `%-m.n`:左对齐输出,其中`m`为最小宽度,`n`为精度。 - `%0m.n`:在`%-m.n`的基础上,不足时用0填充。 - `%h`:短整型数据。 - `%l`:长整型数据。 ### 格式控制参数详解 `printf`格式控制的完整格式为`%(flags)(width)(.prec)type`。其中: - **flags**:标志位,例如`+`、`0`等,用于控制输出格式。 - `+`:对于数值输出,在正数前添加正号。 - `#`:根据转换字符的不同具有不同的意义。 - `0`:指定空位填充0。 - **width**:指定输出的最小宽度。 - 若为`*`符号,则表示下一个参数为宽度值。 - **prec**:精度控制。 - 对于整数,表示最小位数。 - 对于浮点数,表示小数位数。 - 对于字符串,表示最大长度。 - 若为`*`符号,则表示下一个参数为精度值。 - **type**:输出数据类型。 - `%d`:有符号十进制整数。 - `%u`:无符号十进制整数。 - `%o`:无符号八进制整数。 - `%x`:无符号十六进制整数,小写字母表示。 - `%X`:无符号十六进制整数,大写字母表示。 - `%f`:浮点数,带小数点。 - `%e`:科学记数法表示。 - `%g`:自动选择%f或%e。 - `%c`:单个字符。 - `%s`:字符串。 - `%p`:十六进制地址。 通过这些控制符,我们可以非常灵活地控制输出数据的格式,满足各种不同的需求。理解和掌握这些格式控制符对于高效使用`printf`函数至关重要。