printf函数的几点说明

2023-05-16

printf函数可能大多数人都用过,但是我们一般都不会详细全面的研究它的诸多格式。今天有空做了一些测试,记录如下:

测试环境:VMware+Ubuntu10.04 (gcc v4.4.3)

1、函数代码如下:

int main(int argc, char **argv)
{
        int a = 1234;
        int b = 0x5678;

        printf("%% 20d of 1234 is: % 20d\n", a);
        printf("%%-20d of 1234 is: %-20d\n", a);
        printf("%%+20d of 1234 is: %+20d\n", a);
        printf("%%#20d of 1234 is: %#20d\n", a);
        printf("%%020d of 1234 is: %020d\n", a);

        printf("%%#20x of 0x5678 is: %#20x\n", b);


        return 0;
}
得到的输出如下:

% 20d of 1234 is:                                       1234
%-20d of 1234 is: 1234                
%+20d of 1234 is:                                   +1234
%#20d of 1234 is:                                      1234
%020d of 1234 is: 00000000000000001234
%#20x of 0x5678 is:                                    0x5678

结论:

1、printf的格式部分定义如下:%[flags][width][.perc][F|N|h|l]type。因此格式字符数以%开始的,然后是flags(0个或1个),width(0个或1个),prec(以小数点开始的一个数字或没有),F/N/h/l/ll其中之一,最后是type(d,x,f,s,p等)。

2、flags有5种:一是空格,表示用空格填充。二是0,表示用0填充。三是减号,表示使用左对齐(默认是右对齐的)。四是加号,表示在数字前显示正负号。五是#,表示如果后面的type是x时打印的十六进制数前加0x。

3、width表示打印长度,不足的部分用空格或0填充。但是要注意一些默认处理,譬如如果同时设置了左对齐和零填充,那么0填充将自动转为空格填充。(因为如果在整数的后面填充0那打印值就错了)。

4、prec部分只在浮点数时有效,表示浮点数小数点后精确到的最多位数。

5、F/N/h/l/ll等,整数转换说明符,即对后面打印的整数进行强制转换后输出。譬如F表示远指针、N表示近指针、h表示将int强制截断为short输出,l表示将整数强制按long型输出,ll表示将整数强制按照long long输出。









本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

printf函数的几点说明 的相关文章

  • 关于VMware USB arbitration Serve 服务无法启动的问题

    文章目录 问题方法一方法二 问题 虚拟机插入U盘或者PA等其他USB设备时无法识别 xff0c 经过一番查询发现是本机的VMware USB arbitration Serve 没有启动 xff0c 然后 打开以后尝试启动VMware US
  • keil5安装记录(基于stm32芯片配置)

    参考资料地址正点原子 下载上述地址中的文件 xff0c 根据自己芯片的型号下载 xff0c 如仅安装keil仅下载网盘中的 软件资料 即可 xff0c 同时也可在官网下载 xff0c 但是不推荐下载最新版本 xff0c 因为很多报错没有可参
  • 黎曼几何与黎曼流形

    目录 0 黎曼几何 1 欧几里得几何与黎曼几何的区别 2 黎曼流形 3 黎曼距离 4 切空间 5 黎曼均值 6 SPD矩阵如何形成黎曼流型 7 切线空间映射 8 同余变换和同余不变 9 黎曼对齐 科普性笔记 xff0c 做了解 xff0c
  • Faster R-CNN

    1 论文简介 论文名 xff1a Faster R CNN Towards Real Time Object Detection with Region Proposal Networks 论文地址 xff1a Faster R CNN 论
  • 手把手教你安装VSCode(附带图解步骤)

    一 前端工具vscode 1 1 概述 前端开发是创建Web页面或app等前端界面呈现给用户的过程 xff0c 通过HTML xff0c CSS及JavaScript以及衍生出来的各种技术 框架 解决方案 xff0c 来实现互联网产品的用户
  • 前端小知识:1.A标签的用法

    前端小知识 1 A标签的用法 Hello xff0c 大家好 xff0c 我是仲桉君 因为一些不可抗因素停更了很久 xff0c 但是我还是回来了从今天开始正式开始更新 这个系列是有关一些前端的小知识的小博文 预计更新20篇以上 争取做到每日
  • 从uboot中学习C语言基本功(uboot/lib_generic/vsprintf.c/simple_strtoul)

    此函数有以下几点值得注意 xff1a 1 第一个参数中的const 一般在函数的形参中 xff0c 如果我们只是希望调用者使用该参数 xff0c 而不会去改变该 参数内容 xff08 一般是指针指向的内容 xff09 xff0c 则可以声明
  • C++语法基础

    C 43 43 环境安装和基础知识 1 xff1a C 43 43 环境安装与配置 我使用的编译器是Clion xff0c 解释器配置的是Dev C 43 43 自带的解释器 xff0c Clion安装见下文 Clion的安装和配置 xff
  • Samba服务

    目录 配置yum源 安装samba服务 配置samba服务 Windows环境使用Samba服务 Linux环境使用Samba服务 xff08 1 xff09 方法一使用smbclient命令 xff08 2 xff09 方法二使用挂载的方
  • 已解决—The connection to the server localhost:8080 was refused - did you specify the right host or port

    运行 kubectl get namespace时报错 xff1a root 64 ip 10 0 0 8 kubectl get namespace E0320 07 39 20 866425 32422 memcache go 265
  • 修改ideal中java项目jdk版本,记得收藏

    1 Ctrl 43 Shfit 43 Alt 43 S 进入Settings 窗口 xff0c 修改红框标记的两处jdk版本 2 Ctrl 43 Shfit 43 Alt 43 S 进入Project Structure窗口 xff0c 先
  • GO语言开发环境配置(Linux)

    Go语言开发环境配置 xff08 Linux xff09 一 Go安装二 IDE安装三 Vim IDE 常用功能 一 Go安装 Go 有多种安装方式 xff0c 比如 Go 源码安装 Go 标准包安装 第三方工具 xff08 yum apt
  • HBase过滤器

    目录 一 介绍 1 hbase运算符 2 Hbase 过滤器的比较器 二 代码 1 hbase建表 2 创建数据 3 导入依赖 4 列值过滤器 5 单列值过滤器 6 单列值排除过滤器 7 rowkey过滤器 8 rowkey前缀过滤器 xf
  • Hive与HBase之间的区别和联系

    目录 概念 Hive HBase 共同点 区别 关系 首先要知道Hive和HBase两者的区别 xff0c 我们必须要知道两者的作用和在大数据中扮演的角色 概念 Hive 1 Hive是hadoop数据仓库管理工具 xff0c 严格来说 x
  • VSCode(Visual Studio Code )软件(插件)安装与使用

    VSCode 简介 Visual Studio Code 简称 VS Code VSC 是微软公司推出的一款免费开源的现代化轻量级代码编辑器 xff0c 支持几乎所有主流的开发语言的语法高亮 智能代码补全 GIT 等特性 xff0c 支持插
  • 51单片机智能小车

    最近学校举办了一个智能小车比赛 xff0c 比赛内容为用手机蓝牙控制小车拥有5个功能 xff0c 分别是超声波舵机避障 xff0c 测距 xff08 显示在LCD1602上 xff09 xff0c 红外跟随 xff0c 循迹还有蓝牙控制小车
  • 在Matlab中通过mex使用cuda的方法

    仅供参考 xff0c 具体问题需要具体分析 xff01 1 cuda安装及配置 xff0c 参考下面这篇 cpp文件调用cuda函数 苹果挨炮的博客 CSDN博客 2 Matlab配置mex编译环境 在matlab命令行中输入以下命令 me
  • container_of 详解

    container of宏的功能 xff1a 从结构体类型 type 的一个成员 member 指针 ptr xff0c 反推得到该结构体的指针 其实现由两个分号隔开的语句组成 xff0c 首先用typeof关键字 xff0c 得到memb
  • ubuntu 内存清理【亲测有效】

    目录 一 xff1a 引言 二 xff1a ubuntu 内存清理 应急 1 移除掉不再需要的软件包 2 清理ubuntu中的APT缓存 3 清理缩略图缓存 4 手动删除老旧Linux内核 5 删除多余的孤立包 6 卸载不必要的应用程序 一
  • hdfs的常见语句

    开hdfs环境 xff1a xff08 开启成功后用jps命令出来至少6条数据 xff09 start all sh 关hdfs环境 xff08 记得关 xff0c 容易坏 xff09 xff1a stop all sh 上传文件 xff1

随机推荐