[VEX] printf和sprintf
vex里的printf相当于C语言里的printf的简化版。
sprintf和printf用法一样,不同的是sprint返回字符串,而printf输出字符串到控制台。
因为sprintf在vex里有实际用途,所以下面的例子都用sprintf。

函数的作用
对于一个已经声明的变量a,a是字母,同时它又是这个变量的名字。如果我们想要一个string中的a不是字母a,而是a代表的实际数值,就需要用一种方法告诉电脑这个a是字母a还是变量a。
sprintf函数就是这个作用,能将变量转化成特定格式的字符串。
用法
普通用法

在sprintf的函数里,用%符号表示要进行转换,%后面接4个特殊标记表示转换成什么样的格式,这4个特殊标记的名字分别是[flags][width][.precision][format],然后再在字符的外面接要转换的变量。比如

其中“-” “3” “.3” “f”是特殊标记,需要转换的变量a紧跟在逗号后面。
这些特殊标记用不同的数字字母或符号来表示某种格式,比如第三个“.3”表示保留小数点后3位。当不需要某种格式时,也可以省略掉某个标记,当然%不能省略,最后一个[format]也不能省略。同一个字符里能多次转换。

[flags]
-
:结果将在字段中左对齐+
:对于正值,数字值将带有前缀+
。此标志的非标准行为是在设置标志时将引用字符串参数+
。0
:对于数值,前导零用于填充字段。

[width]
宽度
宽度可以由一位或多位十进制数字指定。或者,如果给出星号 ( *
),则宽度将从printf
参数列表中的下一个值获取。

[.precision]
精确
精度可以由一位或多位十进制数字指定。或者,如果给出星号 ( *
),则宽度将从printf
参数列表中的下一个值获取。

[format]
%g
, %p
,%c
以“一般”形式打印整数浮点数、向量、向量 4、矩阵 3、矩阵或字符串。
%f
, %e
,%E
以浮点形式打印浮点数、向量、向量4、矩阵3或矩阵。
%s
打印一个字符串。
%d
,%i
以十进制打印整数变量。
%x
,%X
以十六进制打印整数变量。该值将以“0x”为前缀(即0×42)。
%o
以八进制打印整数变量。
%%
打印百分号 (%)。
