前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【C#学习笔记04】深入掌握C语言格式化输出

【C#学习笔记04】深入掌握C语言格式化输出

作者头像
一条晒干的咸鱼
发布2025-03-14 10:44:00
发布2025-03-14 10:44:00
2400
代码可运行
举报
文章被收录于专栏:learnlearn
运行总次数:0
代码可运行
引言

​printf()​​函数不仅可以将数据输出到控制台,还可以通过格式化字符串灵活地控制输出的格式。​​printf()​​​函数的使用规则,包括标志说明、字段宽度、转换精度、长度修饰、转换说明、转义字符和返回结果等内容。


1. ​​printf()​​函数概述

​printf()​​函数是C语言标准库中的一个格式化输出函数,定义在​​<stdio.h>​​头文件中。它的基本语法如下:

代码语言:javascript
代码运行次数:0
运行
复制
int printf(const char *format, ...);
  • format​:格式化字符串,用于指定输出的格式。
  • ...​:可变参数列表,用于提供要输出的数据。
  • 返回值:成功时返回输出的字符数,失败时返回负值。
代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>

int main() {
    int num = 42;
    printf("The answer is %d\n", num);
    return 0;
}

输出

代码语言:javascript
代码运行次数:0
运行
复制
The answer is 42

2. 格式化字符串详解

格式化字符串是​​printf()​​函数的核心,它由普通字符和格式说明符组成。格式说明符以​​%​​​开头,用于指定输出的格式。

2.1 标志说明

标志用于控制输出的对齐方式、符号显示等。常见的标志包括:

  • -​:左对齐(默认右对齐)。
  • +​:显示正数的符号。
  • ​(空格):正数前显示空格,负数前显示负号。
  • #​:对八进制和十六进制数添加前缀(​​0​​或​​0x​​)。
  • 0​​:用前导零填充字段宽度。
代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>

int main() {
    int num = 42;
    printf("|%10d|\n", num);   // 右对齐,宽度10
    printf("|%-10d|\n", num);  // 左对齐,宽度10
    printf("|%+d|\n", num);    // 显示符号
    printf("|% d|\n", num);    // 正数前显示空格
    printf("|%#x|\n", num);    // 十六进制带前缀
    printf("|%010d|\n", num);  // 前导零填充
    return 0;
}

输出

代码语言:javascript
代码运行次数:0
运行
复制
|        42|
|42        |
|+42|
| 42|
|0x2a|
|0000000042|

2.2 字段宽度

字段宽度用于指定输出的最小字符数。如果数据的实际宽度小于指定宽度,则用空格或前导零填充。

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>

int main() {
    int num = 42;
    printf("|%5d|\n", num);   // 宽度5
    printf("|%2d|\n", num);   // 宽度2(实际宽度大于指定宽度)
    return 0;
}

输出

代码语言:javascript
代码运行次数:0
运行
复制
|   42|
|42|

2.3 转换精度

转换精度用于指定浮点数的小数位数或字符串的最大字符数。精度以​​.​​开头,后跟一个整数。

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>

int main() {
    double pi = 3.1415926535;
    printf("|%.2f|\n", pi);   // 保留2位小数
    printf("|%.5s|\n", "Hello, World!");  // 输出前5个字符
    return 0;
}

输出

代码语言:javascript
代码运行次数:0
运行
复制
|3.14|
|Hello|

2.4 长度修饰

长度修饰用于指定参数的类型。常见的长度修饰符包括:

  • h​:短整型(如​​%hd​​表示​​short int​​)。
  • l​:长整型(如​​%ld​​表示​​long int​​)。
  • ll​:长长整型(如​​%lld​​表示​​long long int​​)。
  • L​:长双精度浮点型(如​​%Lf​​表示​​long double​​)。
代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>

int main() {
    short num1 = 42;
    long num2 = 1234567890;
    long double pi = 3.1415926535;
    printf("|%hd|\n", num1);   // 短整型
    printf("|%ld|\n", num2);   // 长整型
    printf("|%.10Lf|\n", pi);  // 长双精度浮点型
    return 0;
}

输出

代码语言:javascript
代码运行次数:0
运行
复制
|42|
|1234567890|
|3.1415926535|

2.5 转换说明

转换说明符用于指定输出的数据类型。常见的转换说明符包括:

  • d​、​i​:有符号十进制整数。
  • u​:无符号十进制整数。
  • o​:无符号八进制整数。
  • x​、​X​:无符号十六进制整数(​​x​​表示小写,​​X​​表示大写)。
  • f​、​F​:浮点数。
  • e​、​E​:科学计数法表示的浮点数。
  • g​、​G​:根据值的不同自动选择​​f​​或​​e​​格式。
  • c​:字符。
  • s​:字符串。
  • p​:指针地址。
代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>

int main() {
    int num = 42;
    double pi = 3.1415926535;
    char ch = 'A';
    char str[] = "Hello, World!";
    printf("|%d|\n", num);     // 十进制整数
    printf("|%x|\n", num);     // 十六进制整数(小写)
    printf("|%f|\n", pi);      // 浮点数
    printf("|%e|\n", pi);      // 科学计数法
    printf("|%c|\n", ch);      // 字符
    printf("|%s|\n", str);     // 字符串
    printf("|%p|\n", &num);    // 指针地址
    return 0;
}

输出

代码语言:javascript
代码运行次数:0
运行
复制
|42|
|2a|
|3.141593|
|3.141593e+00|
|A|
|Hello, World!|
|0x7ffee4b5c8fc|

2.6 转义字符

转义字符用于表示特殊字符或控制输出格式。常见的转义字符包括:

  • \n​:换行。
  • \t​:制表符。
  • \\​:反斜杠。
  • \"​:双引号。
  • \'​:单引号。
代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>

int main() {
    printf("Hello,\nWorld!\n");  // 换行
    printf("Column1\tColumn2\n");  // 制表符
    printf("This is a backslash: \\\n");  // 反斜杠
    printf("He said, \"Hello!\"\n");  // 双引号
    return 0;
}

输出

代码语言:javascript
代码运行次数:0
运行
复制
Hello,
World!
Column1    Column2
This is a backslash: \
He said, "Hello!"

2.7 返回结果

​printf()​​函数返回成功输出的字符数。如果发生错误,则返回负值。

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>

int main() {
    int count = printf("Hello, World!\n");
    printf("Characters printed: %d\n", count);
    return 0;
}

输出

代码语言:javascript
代码运行次数:0
运行
复制
Hello, World!
Characters printed: 14
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 1. ​​printf()​​函数概述
  • 2. 格式化字符串详解
    • 2.1 标志说明
    • 2.2 字段宽度
    • 2.3 转换精度
    • 2.4 长度修饰
    • 2.5 转换说明
    • 2.6 转义字符
    • 2.7 返回结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档