首页 > 数据库 >SQLite 内置打印 printf

SQLite 内置打印 printf

时间:2023-11-11 11:38:26浏览次数:48  
标签:字符 SQLite 内置 宽度 参数 printf 字符串 替换 精度

SQLite 内置打印 printf

格式详细信息

printf() 的格式字符串是生成字符串的模板。 每当格式字符串中出现%字符时,就会进行替换。 %后跟一个或多个描述替换的附加字符。 每个替换都具有以下格式:

%[flags][width][.precision][length]type

所有替换都以单个%开头,并以单个类型字符结尾。 替换的其他元素是可选的。

要在输出中包括一个%字符,请在模板中放置两个连续的%字符。

替换类型 type

替换类型 含义
% 一行中的两个%字符在输出中被转换为一个%,而不替换任何值。
d, i 参数是一个带符号的整数,以十进制显示。
u 参数是一个无符号整数,以十进制显示。
f 参数是一个双精度值,以十进制显示。
e, E 参数是一个双精度值,以指数表示法显示。
g, G 参数是一个双精度值,它以普通十进制表示法显示,如果指数不接近零,则以指数表示法显示。
x, X 参数是一个以十六进制显示的整数。 小写十六进制用 %x 表示,大写用 %X 表示
o 参数是一个以八进制显示的整数。
s, z 参数是可以显示的字符串,也可以是作为空字符串的空指针。 %s%z 替换是相同的,NULL 参数被视为空字符串。
c 参数是一个字符串,从中提取并显示第一个字符。
p 参数是一个显示为十六进制地址的指针。%p 替换的效果类似于 %x
n 参数是一个指向整数的指针。 这种替换类型不会显示任何内容。 相反,参数指向的整数将会被%n左侧所有格式符号产生的字符串中的字符数覆盖,该字符串是由 %n 左侧的所有格式符号产生的。
q, Q 参数是一个字符串。 打印字符串时,所有单引号 ' 字符都会加倍,生成有效的 SQL 字符串文字。 %Q 替换类型还会在替换字符串的两端添加单引号。 如果 %Q 的参数是空指针,则输出是 NULL。 如果 %q 的参数是空指针,则不会生成任何输出。 因此,指向 %q 的空指针与空字符串相同。
w 替换的工作方式类似于 %q,只不过它将所有双引号字符 " 加倍,从而使结果适合在 SQL 语句中与双引号标识符名称一起使用。

可选长度字段 length

参数值的长度可以通过替换类型字母前的一个或多个字母来指定。 在 SQLite 中,长度仅对整数类型有效。 只有 ll 长度修饰符对 SQLite 有影响。 而且只有在使用 C 语言接口时才会产生影响。

可选宽度字段 width

宽度字段指定输出中替换值的最小宽度。 如果写入输出的字符串或数字短于宽度,则填充该值。 默认情况下,填充在左侧(值右对齐)。 如果使用 - 标志,则填充在右侧,值为左对齐。

默认情况下,宽度以字节为单位。 但是,如果存在 ! 标志,则宽度以字符为单位。 这只对多字节 utf-8 字符产生影响,并且仅在字符串替换时出现。

如果宽度是单个 * 字符而不是数字,则实际宽度值将从参数列表中作为整数读取。 如果读取的值为负,则宽度使用绝对值,并且该值将左对齐,就像存在 - 标志一样。

如果被替换的值大于宽度,则将完整值添加到输出中。 换句话说,宽度是值在输出中呈现的最小宽度。

可选精度字段 precision

精度字段(如果存在)必须紧跟在宽度之后,中间用一个 . 字符隔开。如果没有宽度,则精确度的.紧跟在标志(如果有)或首字母%之后。

对于字符串替换(%s%z%q%Q%w),精度是参数中使用的字节或字符数。默认情况下是字节数,但如果有!标记,则是字符数。如果没有精度,则替换整个字符串。 示例:%.3s替换参数字符串的前 3 个字节。 %!.3s替换参数字符串的前三个字符。

对于整数替换(%d%i%x%X%o%p),精度指定要显示的最小位数。必要时会加上前导零,以将输出扩展到最小位数。

对于浮点替换(%e%E%f%g%G),精度指定要显示在小数点右侧的位数。

对于字符替换 (%c),精度 N 大于 1 会导致字符重复 N 次。

如果精度是单个*字符而不是数字,则实际精度值将从参数列表中读取为整数。

选项标志字段 flags

标志由零个或多个字符组成,紧跟在引入替换的%之后。

标志 含义
- 左对齐输出中的值。 默认为右对齐。 如果宽度为零或小于被替换值的长度,标志不起作用。
+ 对于带符号的数字替换,在正数前加上+号。 无论标志设置如何,-号始终出现在负数前。
(space) 对于带符号的数字替换,在正数前添加一个空格。
0 根据需要在数字替换前添加尽可能多的0字符,以将值扩展到指定的宽度。 如果省略宽度字段,则此标记无效。
# 这是alternate-form-1标志。 对于 %g%G 替换,会删除尾部的零。 此标志强制所有浮点替换都显示小数点。 对于 %o%x%X 替换,alternate-form-1 标志会导致值分别在值前加上00x0X
, 此标志会在 %d 和 %i 替换的输出中,左起每 3 位数字之间添加逗号分隔符。 这可以帮助人们更容易地辨别大整数值的大小。 例如,值 2147483647 使用 %d 将呈现为 2147483647,但使用%,d将显示为 2,147,483,647
! 这是alternate-form-2标志。对于字符串替换,此标志使宽度和精度以字符而不是字节来表示。对于浮点数替换,alternate-form-2 标志将显示的最大有效位数从 16 位增加到 26 位,强制显示小数点,并使小数点后至少出现一位数。

参考

SQLite的内置打印()

标签:字符,SQLite,内置,宽度,参数,printf,字符串,替换,精度
From: https://www.cnblogs.com/txgh/p/17825681.html

相关文章

  • Go中字符串处理:fmt.Sprintf与string.Builder的比较
    在Go语言中,我们通常会遇到两种主要的方式来处理和操作字符串:使用fmt.Sprintf函数和string.Builder类型。尽管两者都可以实现字符串的格式化和连接,但它们在性能和用法上有一些关键区别。1.fmt.Sprintffmt.Sprintf是一个函数,它根据提供的格式化字符串和参数列表,将它们格式化为一......
  • C# EntityFramework+SQLite CodeFirst 创建数据库和数据表
    1、安装NuGet包System.Data.SQLite(System.Data.SQLite.Core、System.Data.SQLite.EF6、System.Data.SQLite.Linq)SQLite.CodeFirstEntityFramework2、配置App.config<?xmlversion="1.0"encoding="utf-8"?><configuration><configSe......
  • 四个作用域九大内置对象
    九大对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用out:javax.servlet.jsp.JspWriter类型,代表输出流的对象。作用域为page(页面执行期)request:javax.servlet.ServletRequest的子类型,此对象封装了由WEB浏览器或其它客户端生成地HTTP请求的......
  • cmake内置变量总结
    一、概述在使用CMake配置CMakeLists.txt的时候,内置变量会极大的方便我们编写。所以在这里罗列出cmake常用的内置变量二、常用内置变量PROJECT_SOURCE_DIR项目根目录PROJECT_BINARY_DIR执行cmake命令的目录CMAKE_CURRENT_SOURCE_......
  • SQLite3相关操作
    目的为了方便在嵌入式设备上操作SQLite3CLI基本操作apt就可以安装cli。apt-getinstallsqlite3以下的操作都是在cli中进行的查看所有的表:.tables查询表的所有数据:查询的时候显示查询的列.modecolumn显示头.headerson查询所有的数据sel*直接执行命令的话可以......
  • 解决升级到 Delphi 12 后遇到 SQLite 不兼容的问题
    今天升级到Delphi12后,编译运行原来的项目,出现“[FireDAC][Phys][SQLite][sqlite3]-303.Capabilityisnotsupported”的错误。经过查找文档,发现是FireDACSQLite版本更新导致的。RADStudio12.0支持SQLite3.42,同时保留了使用FireDAC加密(FDE)的SQLite3.31.1的选项......
  • mes 数据库 python sqlite
    importsqlite3fromsqlite3importErrordefcreate_connection():conn=None;try:conn=sqlite3.connect(':memory:')#创建一个内存数据库。对于文件数据库,您可以使用文件路径。print(f'successfulconnectionwithsqliteversion{sqlite3.......
  • FS2957 降压恒压芯片内置120V功率管36V48V60V72V80v降压5V
    随着科技的不断进步,电子设备在我们的生活中越来越普及,而电源管理芯片作为电子设备中的重要组成部分,也得到了广泛的应用。今天,我们要介绍的是一款具有高性价比的FS2957降压恒压芯片,它内置120V功率管,适用于36V、48V、60V、72V、80V的降压5V输出。FS2957降压恒压芯片采用专利的电流模......
  • 云存储/视频监控管理平台EasyCVR,使用sqlite数据库出现卡顿该如何优化?
    视频集中存储/云存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。AI智能大数据视频分析EasyCVR平台已经广泛应用在工地、工厂、园区、楼宇、校园、仓储等场景中。有用......
  • 【C语言基础】 指针变量-printf %d和%p的含义
    1.指针变量的值是地址,地址通常用16进制表示2.inta=1;int*p=&a;printf("%d\n",p);和printf("%p\n",p);有什么区别呢,输出的都是p的值,%p是把指针变量p中存储的a的地址以十六进制形式输出,%d是吧p中存储的a的地址以十进制形式输出。输出的都是p的值,不要理解成%p,是把p的地址输出。......