原创 vfprintf() 函数

2008-9-15 22:38 4181 10 10 分类: MCU/ 嵌入式

vfprintf() 函数

















Definition and Usage

定义和用法


The vfprintf() function writes a formatted string to a specified output stream (example: file or database).

vfprintf()函数的作用是:输出格式化字符串到流(例如:文件或数据库)。


Unlike fprintf(), the arguments in vfprintf(), are placed in an
array. The array elements will be inserted at the percent (%) signs in
the main string. This function works "step-by-step". At the first %
sign, the first array element is inserted, at the second % sign, the
second array element is inserted, etc.

与fprintf()函数不同,vfprintf()函数中的自变量是位于数组中的,数组元素的字符串之前都要加上百分号(%)。这个函数是“一步一步
[step-by-step]”按顺序执行。在第一个%后,将插入第一个数组元素;在第二个%后,将插入第二个数组元素,依次类推。


The vfprintf() function returns the length of the written string.

vfprintf()函数将返回写入的字符串长度。


Syntax

语法



vfprintf(stream,format,argarray)




Parameter参数Description描述
streamRequired. Specifies where to write/output the string

必要参数。指定从哪个位置书写 / 输出字符串
formatRequired. Specifies the string and how to format the variables in it.

必要参数。指定字符串,以及如何定义其中变量的格式。

Possible format values:

可能值如下:


  • %% - Returns a percent sign

    %% -返回百分号
  • %b - Binary number

    %b –返回二进制数
  • %c - The character according to the ASCII value

    %c –返回与ASCII值相对应的字符
  • %d - Signed decimal number

    %d –带有正负号的十进制数
  • %e - Scientific notation (e.g. 1.2e+2)

    %e –科学计数符号(如:1.2e+2)
  • %u - Unsigned decimal number

    %u –不带正负号的十进制数
  • %f - Floating-point number (local settings aware)

    %f – 浮点数据(本地设置)
  • %F - Floating-point number (not local settings aware)

    %F –浮点数据(非本地设置)
  • %o - Octal number

    %o –十进制数
  • %s - String

    %s –字符串
  • %x - Hexadecimal number (lowercase letters)

    %x –十六进制数(小写字母)
  • %X - Hexadecimal number (uppercase letters)

    %X –十六进制数(大写字母)

Additional format values. These are placed between the % and the letter (example %.2f):

其它格式的值。它是位于%和字母之间的(如:%.2f)


  • + (Forces both + and - in front of numbers. By default, only negative numbers are marked)

    +(在数字前加上+和-;默认情况下,只有负数是被标记出来的)
  • '
    (Specifies what to use as padding. Default is space. Must be used
    together with the width specifier. Example: %'x20s (this uses "x" as
    padding)

    ’(指定使用什么作为补白,默认值是空格。它必须与宽度指定器一起使用。如:%'x20s(使用“x”作为padding))
  • - (Left-justifies the variable value)

    - (左调整变量值)
  • [0-9] (Specifies the minimum width held of to the variable value)

    [0-9](指定变量值的最小宽度)
  • .[0-9] (Specifies the number of decimal digits or maximum string length)

    .[0-9](指定十进制数值或最大字符串长度)

Note: If multiple additional format values are used, they must be in the same order as above.

注意:如果使用附加格式值,那么它必须与上述顺序相同


argarrayRequired. An array with arguments to be inserted at the % signs in the format string

必要参数。指定在格式化字符串中插在%之后的带有自变量的数组对象





Tips and Notes

提示和注意点


Note: If there are more % signs than arguments, you
must use placeholders. A placeholder is inserted after the % sign, and
consists of the argument- number and "$". See example three.

注意:注意:如果这里的%比自变量更多,你必须使用占位符[placeholders]。占位符是安插在%之后的,它是由自变量-数字和“$”组成的。具体可以见案例3。


Tip: Related functions: fprintf(), printf(), sprintf(), vprintf(), and vsprintf().

提示:相关函数:printf(), sprintf(), vfprintf(), vprintf(), 和 vsprintf()




Example 1

案例1



<?php
$str = "Hello";
$number = 123;
$file = fopen("test.txt","w");
echo vfprintf($file,"%s world. Day number %u",array($str,$number));
?>


The output of the code above will be:

上述代码将输出下面的结果:



27


The following text will be written to the file "test.txt":

下面的文本将被写入文件“text.txt”:



Hello world. Day number 123






Example 2

案例2



<?php
$num1 = 123;
$num2 = 456;
$file = fopen("test.txt","w");
vfprintf($file,"%f%f",array($num1,$num2));
?>


The following text will be written to the file "test.txt":

下面的文本将被写入文件“text.txt”:



123.000000456.000000






Example 3

案例3


Use of placeholders:

使用占位符



<?php
$number = 123;
$file = fopen("test.txt","w");
vfprintf($file,"With 2 decimals: %1$.2f
nWith no decimals: %1$u",array($number));
?>


The following text will be written to the file "test.txt":

下面的文本将被写入文件“text.txt”:



With 2 decimals: 123.00 
With no decimals: 123
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条