在使用格式化I/O函数时,理解格式字符串与变量类型的匹配至关重要。格式字符串中的第一个转换指定符与fprintf
函数输出参数列表中的第一个值相结合,依此类推。每一个格式转换指定符的类型必须与输出数据类型相同。举个例子,指示符%d
与变量a
联合,%f
与变量b
结合,%s
与变量c
相结合。注意,指定符类型必须与数据类型相匹配。a = 10; b = pi; c = 'Hello'; fprintf('Output: %d %f %s ', a, b, c);
。
更有趣的是,在函数fprintf
运行完所有的变量之前,如果扫描已经到达格式字符串的结尾,程序会再次从头开始扫描格式字符串。语句a = [10 20 30 40]; fprintf('Output = %4d ',a);
将会产生输出:
Output = 10
Output = 20
Output = 30
Output = 40
这让人不禁感叹编程的奇妙之处:函数在打印完a(2)
后,到达格式字符串的结尾,它将会回到字符串的开始,继续打印a(3)
和a(4)
。
更复杂的情况是,如果函数fprintf
在到达格式字符结束之前运行完所有的变量,格式字符串的应用将停止。例如语句a = 10; b = 15; c = 20; fprintf('Output = %4d Output = %4.1f ', a, b, c);
将产生输出:
Output = 10
Output = 15.0
Output = 20
Output =
格式字符串的应用停止在%4.1f
,这是它第一次与格式转换指示符不匹配。从另一方面来说,语句voltage = 20; fprintf('Voltage = %6.2f kv. ', voltage);
将产生输出:
Voltage = 20.00 kv.
因为它与格式转换字符串匹配,所以格式的应用停止在格式字符串的结尾。这个机制让人忍不住惊叹编程的逻辑之美。
如果你对这些函数的更多用法感兴趣,不妨看看这些资源:Golang Printf Sprintf Fprintf格式化详解、fprintf类函数、PHP fprintf函数用法讲解、python格式化函数。这些链接不仅能让你深入了解不同编程语言中的格式化函数,还能为你提供更多实际的编程示例和操作指南。
产生并打印数据表是说明函数fprintf
使用的好方法。下面的脚本产生1到10中的所有整数的平方根、平方和立方,并在一个表中显示数据,带有合适的表头。
% Script file: table.m
%
% Purpose:
% To create a table of square roots, squares, and
% cubes.
%
% Record of revisions:
% Date Programmer Description of change
% ======= ===
% 12/20/98 S. J. Chapman Original code
%
% Define variables:
% cube -- Cubes
% ii -- Index variable
% square -- Squares
% square_roots -- Square roots
暂无评论