[VEX] printf和sprintf
vex里的printf相當于C語言里的printf的簡化版。
sprintf和printf用法一樣,不同的是sprint返回字符串,而printf輸出字符串到控制臺。
因為sprintf在vex里有實際用途,所以下面的例子都用sprintf。

函數(shù)的作用
對于一個已經(jīng)聲明的變量a,a是字母,同時它又是這個變量的名字。如果我們想要一個string中的a不是字母a,而是a代表的實際數(shù)值,就需要用一種方法告訴電腦這個a是字母a還是變量a。
sprintf函數(shù)就是這個作用,能將變量轉(zhuǎn)化成特定格式的字符串。
用法
普通用法

在sprintf的函數(shù)里,用%符號表示要進行轉(zhuǎn)換,%后面接4個特殊標記表示轉(zhuǎn)換成什么樣的格式,這4個特殊標記的名字分別是[flags][width][.precision][format],然后再在字符的外面接要轉(zhuǎn)換的變量。比如

其中“-” “3” “.3” “f”是特殊標記,需要轉(zhuǎn)換的變量a緊跟在逗號后面。
這些特殊標記用不同的數(shù)字字母或符號來表示某種格式,比如第三個“.3”表示保留小數(shù)點后3位。當不需要某種格式時,也可以省略掉某個標記,當然%不能省略,最后一個[format]也不能省略。同一個字符里能多次轉(zhuǎn)換。

[flags]
-
:結(jié)果將在字段中左對齊+
:對于正值,數(shù)字值將帶有前綴+
。此標志的非標準行為是在設(shè)置標志時將引用字符串參數(shù)+
。0
:對于數(shù)值,前導零用于填充字段。

[width]
寬度
寬度可以由一位或多位十進制數(shù)字指定?;蛘撸绻o出星號 (?*
),則寬度將從printf
參數(shù)列表中的下一個值獲取。

[.precision]
精確
精度可以由一位或多位十進制數(shù)字指定?;蛘?,如果給出星號 (?*
),則寬度將從printf
參數(shù)列表中的下一個值獲取。

[format]
%g
,?%p
,%c
以“一般”形式打印整數(shù)浮點數(shù)、向量、向量 4、矩陣 3、矩陣或字符串。
%f
,?%e
,%E
以浮點形式打印浮點數(shù)、向量、向量4、矩陣3或矩陣。
%s
打印一個字符串。
%d
,%i
以十進制打印整數(shù)變量。
%x
,%X
以十六進制打印整數(shù)變量。該值將以“0x”為前綴(即0×42)。
%o
以八進制打印整數(shù)變量。
%%
打印百分號 (%)。
