Printf打印格式

%a - 浮点数、十六进制数字和p-记数法(C99)
%A - 浮点数、十六进制数字和p-记法(C99)
%c - 一个字符 
%d - 有符号十进制整数 
%e - 浮点数、e-记数法
%E - 浮点数、E-记数法
%f - 浮点数、十进制记数法  
%g - 根据数值不同自动选择%f或%e.
%G - 根据数值不同自动选择%f或%e.
%i - 有符号十进制数(与%d相同)
%o - 无符号八进制整数
%p - 指针    
%s - 字符串
%u - 无符号十进制整数
%x - 使用十六进制数字0f的无符号十六进制整数 
%X - 使用十六进制数字0f的无符号十六进制整数
%% - 打印一个百分号

printf()的基本形式: printf(“格式控制字符串”,变量列表);

### C语言 `printf` 函数格式化字符串输出 #### 基本语法 `printf()` 是 C 标准库中的函数,用于向标准输出流(通常是终端)输出格式化数据。其基本格式如下: ```c int printf(const char *format, ...) ``` 其中,`const char *format` 表示格式控制字符串,后面的参数列表则是要被格式化的变量。 #### 示例:简单文本输出 最简单的用法是直接输出一段文字: ```c printf("Hello, world!\n"); ``` 这会打印出 `"Hello, world!"` 并换行[^1]。 #### 使用转换说明符 为了更灵活地处理不同类型的数据,在格式串中可以加入各种转换说明符来指示如何解释后续的参数。常见的有 `%d`, `%f`, `%s` 等等。 - 整形数可以用 `%d` 或者对于长整形使用 `%ld`. - 浮点数应该采用 `%f`. 对于双精度浮点数,则应使用 `%lf`. 例如: ```c long int num = 12345L; double pi = 3.14159; printf("The number is %ld and Pi value is %.2lf\n", num, pi); // 输出:"The number is 12345 and Pi value is 3.14" ``` 这里需要注意的是当使用 `scanf()` 来读取长整型数据时应当使用 `%ld`; 而在使用 `printf()` 打印双精度数值的时候则需选用 `%lf`[^4]. #### 高级特性:指定字段宽度与精度 还可以进一步定制输出样式,比如设置最小宽度或小数点后的位数。这些可以通过附加到百分号后面的一些修饰符实现。 - 字段宽度由紧跟在 `%` 后面的一个十进制正整数给出;如果实际内容长度小于该值,则会在左侧填充空格使总宽达到设定值; - 小数部分保留几位可通过一个小圆点加上一个数字完成定义. 例子: ```c char str[] = "hello"; float fval = 123.456789F; printf("|%-10s|", str); // 左对齐并补足至10个字符宽 printf("%.2f\n", fval); // 只显示两位小数 ``` 这段代码将会依次输出带有竖线框定的内容以及只精确到了第二位的小数形式的浮点数[^5]. #### 特殊情况下的子串提取 有时可能只需要输出某个较长字符串的一部分。这时就可以利用特殊的格式描述方式 —— 即通过指明起始位置和结束位置之间的偏移量来进行裁剪: ```c char long_str[] = "abcdefghijklmn"; for(int i=0; i<strlen(long_str)-2 ;i++) { printf("%.*s ", strlen(long_str)-i-1 , &long_str[i]); } ``` 上述循环将逐次减少剩余未展示的部分直到只剩下一个字母为止[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值