C++ sprintf格式化解决方法详解

开发 后端
C++ sprintf格式化的方法将会在这篇文章中详细介绍。对于刚刚接触这款语言的朋友们来说,可以以此为参考对象,来加强我们对此的学习。

今天我们将会为大家详细介绍一下有关C++ sprintf格式化的相关应用方法。希望初学者们可以根据本文介绍的内容充分掌握这方面的知识,并从中体验这款语言给我们都带来了哪些不一样的应用方式。

名称:

  1. printf, sprintf - 转换成指定格式的输出结果.   
  2. void printf( string format, ... );   
  3. string sprintf( string format, ... );  

 

语法:#t#

无返回值 printf( 字符串 format, ... );

字符串 sprintf( 字符串 format, ... );

用法: 以下为 LPC (s)printf() 的格式用法, Lynscar (Sean A Reith) 加入了一些扩充用法.

目前的版本支援以下的修改格式 (modifier):

" "  在正整数之前放入一个空格.

"+"  在正整数之前放入一个 + 号.

"-"  对齐栏位 (field) 的左边. 请注意: 标准的 (s)printf() 预设是对齐右边, 但是对主要以字符串为基础的语言来说, 这样非常奇怪. 在此为了保留与 C 的相容性而保留此一特性.

"|"  对齐栏位的中心.

"="  如果字符串长度比栏位大小还长, 使用纵列模式 (column mode). 在此C++ sprintf格式化只对字符串有效, 其他的类型一律无效. 纵列模式中, 字符串中的字会自动换行 (wrap).

"#"  表格模式. 在栏位之内, 字符串中的每一个字会换一行 (即每个字后面加上 \n). 只对字符串有效.

n   以整数指定栏位大小. 用 * 代替整数则使用参数指定栏位大小. 如果 n 是 0, 则此栏除了数据以外就以空值 (zeros) 填满. 如果 n 不是 0, 此栏除了数据以外将放入空白字符 (space) 或是另外指定的字符.

"."n 指定输出的精确度为 n. 普通的字符串在此之后则被截断 (如果精确度 n 大于栏位长度, 则栏位长度变为精确度 n ). 表格则使用精确度指定纵列的总数 (如果不指定精确度, 则表格会自动计算最适合的输出结果). 精确度对于其他的数据类型无效.

":"n n 指定 fs 和精确度, 如果 n 是 0, 则原来用以填满栏位的空格就代以空值 (zeros).

"@"  参数为一个数组. 其他除了 @ 以外, 对应的格式数据亦将用于数组中的每一个元素.

"'X'" 单引号 (') 中的字符用以填满整个栏位中, 数据以外的空间. (预设值是空白字符) (如果同时在栏位大小之前指定一个空值, 又指定 'X' 字符串填满栏位, 则以后者为准) 注意: 如果欲填满的字符串中要使用单引号 (') 或是双引号 ("), 您必须使用 \' 或 \" 以避开编译器的检查.

以下是C++ sprintf格式化中指定类型的格式:

 

  1. %   此处不指定任何参数, 而以 % 输出. 忽略所有的修改格式 (modifier).  
  2. O   参数为 LPC 数据类型.  
  3. s   参数为字符串.  
  4. d, i 参数为整数, 并以十进位印出.  
  5. c   参数为整数, 并以字符印出.  
  6. o   参数为整数, 并以八进位印出.  
  7. x   参数为整数, 并以十六进位印出.  
  8. X   参数为整数, 并以十六进位印出 (A 到 F 以大写印出).  
  9. f   浮点数. 

 

返回: sprintf() 返回指定格式的字符串.

以上就是对C++ sprintf格式化的相关接受。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-09-03 14:38:28

C#日期格式化C#日期格式

2021-11-29 14:47:54

C++编程语言

2010-02-24 16:30:52

WCF常见错误

2010-02-01 16:46:07

C++格式化字符串

2009-11-26 18:36:52

PHP函数sprint

2010-08-12 09:30:08

Flex内存泄露

2009-09-03 14:20:21

C#日期格式化

2009-09-04 11:19:40

C#数字格式化

2010-02-06 10:50:10

C++统计对象个数

2009-07-30 16:40:03

C#日期格式化

2023-10-26 08:16:20

C++线程

2011-07-05 09:44:31

QT Mysql 乱码

2010-01-15 15:21:35

C++

2024-02-22 09:46:04

C++字符串格式化开发

2010-01-25 14:10:21

C++堆栈

2010-02-06 11:19:33

C++获取文件

2010-02-01 10:43:10

C++跨平台应用

2010-02-04 11:23:25

C++反射机制

2017-06-14 22:11:57

数据库MySQL死锁

2010-08-03 09:12:52

Flex安全沙箱
点赞
收藏

51CTO技术栈公众号