IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> printf()输出格式详解(Keil C51 、标准C) -> 正文阅读

[C++知识库]printf()输出格式详解(Keil C51 、标准C)

1.printf()简介

printf() 是 式样化 输出函数, 简单说 就是 规定式样输出消息 的函数。

printf() 是 C语言标准库函数,用于将格式化后的字符串输出到标准输出(即标准输出文件,对应终端的屏幕)。

printf() 所在头文件 stdio.h

#include <stdio.h>

函数原型:

int printf ( const char * format, ?... );

返回值:?

正确情况下返回 输出的 字符总数
错误情况下返回 负值;同时输入输出流错误标志将被置位,通过 ferror 来检查输入输出流的错误标志

调用格式:

? ? ? ? ? printf (“格式化字符串”, 输出表列);

格式化字符串 包含三种对象:

(1)字符串常量 (按原样输出);

(2)格式控制字符串 (按照一定格式输出;以%开头的字符串,%后面跟着 各种格式控制符,以说明输出数据的类型、宽度、精度等);

(3)转义字符 (以\开头+字母的特殊操作命令字符,如:\r 回车; \n 换行等)。

2.字符串常量

字符串就是按原样输出,写啥就输出啥!

3.格式控制字符串

格式控制字符串 形式:

"%【标志】【宽度】【.精度】【长度】类型 【】表示可省略,根据需要添加。

3.1标志

格式字符意义
-输出 结果左对齐,右边填空格(和输出最小宽度搭配使用)
+输出 结果右对齐,左边填空格(和输出最小宽度搭配使用),同时显示符号
#类型是o、x、X时,增加前缀0、0x、0X。
类型是a、A、e、E、f、g、G时,一定使用小数点。默认的,如果使用.0??
控制不输出小数部分,则不输出小数点。
类型是g、G时,尾部的0保留。
空格输出值为正时加上空格,为负时加上负号
0将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用“-”)

3.2宽度

宽度描述示例
数值十进制整数printf("%06d",1000);输出:001000
*星号。不显示指明输出最小宽度,而是以星号代替,在printf的输出参数列表中给出printf("%0*d",6,1000);输出:001000
*????星号。还可以控制浮点型数字保留的位数printf("%.*f", x, a); x是位数控制

示例代码:

#include <stdio.h>

void main(void)
{
    int x = 9;

    printf("%03d \r\n", x); //补0凑齐3位

    printf("%02d \r\n", x); //补0凑齐2位

    printf("%3d \r\n", x); //补空格,凑齐3位

    printf("%d \r\n", x); //不补位,输出有效位
}

输出:

3.3精度

.精度描述
.数值对于整数说明符(d, i, o, u, x, x): precision指定要写入的最小数字数。如果要写入的值比这个数字短,结果将用前导零填充。即使结果较长,值也不会被截断。精度为0意味着不为值0写入字符。
对于a, a, e, e, f和f说明符:这是小数点后要打印的位数(默认为6)。
对于g和g说明符:这是要打印的有效数字的最大数量。
对于s:这是要打印的最大字符数。默认情况下,将打印所有字符,直到遇到结束符空字符为止。
如果指定的周期没有显式的精度值,则假定为0。
.*精度不是在格式字符串中指定的,而是作为必须格式化的参数之前的附加整数值参数。

3.4长度

说明符
Keil C51标准Cd iu o x Xf F e E g G a Acspn
类型长度符号类型长度类型长度符号类型长度
(无)默认 int(无)依据类型默认intunsigned intdoubleintchar*void*int*
b8位hh8位signed charunsigned charsigned char*
h16位h16位short intunsigned short intshort int*
l32位l32位long intunsigned long intwint_twchar_t*long int*
ll64位ll64位long long intunsigned long long intlong long int*

在Keil C51中用printf输出一个单字节变量时要使用%bd,如:

printf(“Current count: %bd\n”, counter);//输出8位”十进制有符号整数”
printf(“Current count: %bx\n”, counter);//输出8位”无符号以十六进制表示的整数”

在标准C语言中都是使用%d:

printf(“Current count: %d\n”, counter);

3.5类型

说明类型,因为类型是格式控制字符串的重中之重,是必不可少的组成部分,其它的选项都是可选的。类型用于规定输出数据的类型,含义如下:

格式字符输出示例意义
%dprintf("%d",16);以十进制输出带符号整数(正数不输出符号)
%uprintf("%u",16);以十进制输出无符号整数
%fprintf("%f",3.14);以小数形式输出单、双精度实数
%sprintf("%s","Chi");输出字符串
%cprintf("%c",'x');输出单个字符
%xprintf("%x",5B);以十六进制输出无符号整数(不输出前缀 0x)
%oprintf("%o",75);以八进制输出无符号整数(不输出前缀 0)
%eprintf("%e",30000);以指数形式输出单、双精度实数
%gprintf("%e",30000);以 %f、%e 中较短的宽度输出单、双精度实数
%p?输出地址符

4.转义字符

转义字符意义
\r?回车符
\n??换行符
\f?清屏并换页符
\t?横向制表符
\v纵向制表符
\a警报(响铃)符
\b回退符
\?反斜杠
\”双引号
\xhh表示一个ASCII码用16进表示,其中hh是1到2个16进制数

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:24:34  更:2021-11-30 15:27:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:27:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码