下表总结了所有不同转换说明符的作用:
将整数打印为有符号十进制数。详情请参见整数转换。
‘%d’ 和 ‘%i’ 在输出时是同义词,但在用于
scanf 输入时则不同(参见输入转换表)。
将整数打印为无符号八进制数。详情请参见整数转换。
将整数打印为无符号十进制数。详情请参见整数转换。
将整数打印为无符号十六进制数。‘%x’ 使用 小写字母,‘%X’ 使用大写字母。详情请参见整数转换。
以普通(定点)表示法打印浮点数。 详情请参见浮点转换。
以指数表示法打印浮点数。‘%e’ 使用 小写字母,‘%E’ 使用大写字母。 详情请参见浮点转换。
以普通(定点)表示法或指数表示法打印浮点数,具体取决于哪种表示法更适合其数值大小。 ‘%g’ 使用小写字母,‘%G’ 使用大写字母。 详情请参见浮点转换。
打印单个字符。参见其他输出转换。
打印字符串。参见其他输出转换。
打印一个字面的 ‘%’ 字符。参见其他输出转换。
如果转换规范的语法无效,则会发生不可预测的情况,因此不要这样做。特别是,MATLAB 允许
一个单独的百分号 ‘%’ 后面不跟任何转换字符。
Octave 在遇到此类代码时会报错并停止。当无法保证要处理的字符串变量
不包含潜在的格式代码时,最好使用任意 printf
函数的两参数形式,并将格式字符串设置为 %s。或者,对于
不需要与 MATLAB 向后兼容的代码,可以使用
Octave 的 puts 或 disp 函数。
printf (strvar); # 不安全:如果 strvar 包含格式代码
printf ("%s", strvar); # 安全
puts (strvar); # 安全
如果没有提供足够的函数参数来为模板字符串中的所有转换规范提供数值, 或者参数的类型不正确,则结果是不可预测的。如果提供的参数多于转换规范的数量, 则多余参数的数值将被直接忽略;这有时是有用的。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2