主要内容

FPRINGF.

将数据写入文本文件

描述

例子

流(文件标识formatSpecA1,......,一个适用formatSpec指向数组的所有元素A1,…在列顺序中,并将数据写入文本文件。FPRINGF.使用调用中指定的编码方案富豪

例子

流(formatSpecA1,......,一个格式化数据并在屏幕上显示结果。

例子

nbytes.= fprintf(___返回一个字节数FPRINGF.使用前面语法中的任何输入参数写入。

例子

全部折叠

将多个数值和文本打印到屏幕上。

A1 = [9.9,9900];A2 = [8.8,7.7;......8800年,7700年);formatSpec ='X是%4.2f米或%8.3f mm\n';流(formatSpec A1, A2)
X是9.90米或9900.000毫米X是8.80米或8800.000毫米X是7.70米或7700.000毫米

%4.2f.formatSpecInput指定每一行输出中的第一个值是一个浮点数,字段宽度为4位,包括小数点后的两位。% 8.3度formatSpecInput指定每一行输出中的第二个值是一个字段宽度为8位的浮点数,包括小数点后的3位数字。\ n开始新行的控制字符。

将双重精度值显式转换为整数值。

A = [1.02 3.04 5.06];流(“% d \ n”而圆(a));
1 3 5.

% dformatSpec输入打印在向量中的每个值,圆形(a)作为签名的整数。\ n开始新行的控制字符。

将指数函数的短表写入名为文本文件exp.txt

x = 0:.1:1;a = [x;Exp(x)];fileid = fopen('exp.txt'' w ');fprintf(fileid,% 6 s % 12年代\ n“x”“exp (x)”);fprintf(fileid,“% 6.2 f % 12.8 f \ n”,);文件关闭(文件标识);

第一次打电话FPRINGF.打印标题文本xexp (x),第二个调用将值从变量打印出来一个

如果你打算用微软®记事本, 采用“\ r \ n”而不是'\ n'移动到一个新的行。例如,将调用替换为FPRINGF.有以下内容:

fprintf(fileid,'%6s%12s \ r \ n'“x”“exp (x)”);fprintf(fileid,' % 6.2 f % 12.8 f \ r \ n”,);

MATLAB®导入功能,所有UNIX®应用程序和微软文字处理软件和写字板承认'\ n'作为换行符。

属性查看文件的内容类型命令。

类型exp.txt
X exp(X) 0.00 1.00000000 0.10 1.10517092 0.20 1.22140276 0.30 1.34985881 0.40 1.49182470 0.50 1.64872127 0.60 1.82211880 0.70 2.01375271 0.80 2.22554093 0.90 2.45960311 1.00 2.71828183

将数据写入文件并返回写入的字节数。

写一个数据数组,一个,并获取该文件的字节数FPRINGF.写道。

一个=魔法(4);fileid = fopen(“myfile.txt”' w ');nbytes = fprintf(fileid,'%5d %5d %5d %5d\n',)
nbytes = 96

FPRINGF.函数向文件写入96字节。

关闭该文件。

文件关闭(文件标识);

属性查看文件的内容类型命令。

类型(“myfile.txt”
16 5 9 4 2 11 7 14 3 10 6 15 13 8 12 1

显示超连结(MathWorks网站)显示在屏幕上。

url =“//www.tianjin-qmedu.com”;sitename ='Mathworks网站';流('%s\n'、url、sitename)

% sformatSpec输入表示变量的值URL.SiteName.,应以文本形式印刷。

输入参数

全部折叠

文件标识符,指定为下列之一:

  • 从中获得的文件标识符富豪

  • 1用于标准输出(屏幕)。

  • 2标准误差。

数据类型:

使用格式运算符指定的输出字段的格式。formatSpec也可以包括普通文本和特殊字符。

如果formatSpec包括表示转义字符的文本,例如\ n,然后FPRINGF.转换转义字符。

formatSpec可以是单引号中的字符向量,或从R2016B开始,一个字符串标量。

格式化运营商

格式化运算符以百分号初始,% gydF4y2Ba,以转换字符结尾。转换字符是必需的。还可以指定标识符、标志、字段宽度、精度和之间的子类型操作符% gydF4y2Ba和转换角色。(在运营商之间空间无效,此处仅显示可读性)。

转换字符

该表显示了将数字和字符数据格式化为文本的转换字符。

值类型 转换 细节

整数,签署了

% d要么%我

以10为底的

整数,无符号

% u

以10为底的

%啊

基地8(八进制)

% x

基数16(十六进制),小写字母一个- - - - - -f

% X

一样% x, 大写字母一个- - - - - -F

浮点数

% f

定点记数法(使用精确运算符指定小数点后的位数。)

% e

指数符号,例如3.141593E + 00.(使用精确运算符指定小数点后的位数。)

% E

一样% e,但大写,如3.141593E + 00.(使用精确运算符指定小数点后的位数。)

% g

越紧凑的% e要么% f,后面没有零(使用精确运算符指定有效数字的数目。)

% G

越紧凑的% E要么% f,后面没有零(使用精确运算符指定有效数字的数目。)

字符或字符串

% c

单一人物

% s

字符向量或字符串数组。的类型与输出文本的类型相同formatSpec

可选的运营商

可选的标识符、标志、字段宽度、精度和子类型操作符进一步定义输出文本的格式。

  • 标识符

    处理函数输入参数的顺序。使用语法n,在那里n表示函数调用中的其他输入参数的位置。

    例子:('%3$s %2$s %1$s %2$s','A','B','C')打印输入参数'一种''B''C'如下:C b a b

    笔记:如果输入参数是数组,则无法使用标识符从该输入参数中指定特定数组元素。

  • 旗帜

    “- - -”

    对齐。
    例子:% -5.2度
    例子:%-10s.

    “+”

    对于任何数值,总是打印符号字符(+或-)。
    例子:%+ 5.2f.
    正确辩护文本。
    例子:%+ 10s.

    ''

    在值之前插入空格。
    例子:% 5.2度

    ' 0 '

    在字段宽度之前填充零。
    例子:% 05.2度

    “#”

    修改所选数字转换:

    • %啊% x, 要么% X、打印00x., 要么0x.前缀。

    • % f% e, 要么% E,即使精度为0也打印小数点。

    • % g要么% G,不删除末尾的零或小数点。

    例子:% # 5.0度

  • 字段宽度

    要打印的最小字符数。字段宽度操作符可以是数字或星号()以引用输入参数。

    当你指定作为字段宽度操作符,其他输入参数必须同时提供宽度和要打印的值。宽度和值可以是参数对或数字数组中的对。和作为字段宽度操作符,可以使用不同的宽度打印不同的值。

    例子:输入参数('%12d',intmax)相当于(' % * d ', 12日intmax)

    例子:输入参数('%* d',[2 10 5 100])返回“100”,有两个空格分配10.5个空格100..作为替代方案,您还可以将字段宽度和值指定为多个参数,如(' % * d ', 2, 10, 5100)

    除非由标志另行指定,否则函数在值之前用空格填充字段宽度。

  • 精度

    % f% e, 要么% E

    小数点右边的位数
    例子:'%.4f'打印PI.作为“3.1416”

    % g要么% G

    有效位数
    例子:'%.4g'打印PI.作为'3.142'

    精度运算符可以是数字或星号()指的是一个争论。

    当你指定作为字段精度运算符,其他输入参数必须提供精度和要打印的值。精度和值可以是数字成对的参数,或数字数组中的对。和作为精度操作符,可以打印不同的值到不同的精度。

    当你指定*.*作为字段宽度和精度操作符,必须将字段宽度、精度和值指定为三元组。

    例子:输入参数('%.4f',pi)相当于(' %。* f ' 4π)

    例子:输入参数('%6.4f',pi)相当于(' %。* f ' 6 4π)

    例子:输入参数(' % *。* f ', 6日4π,9日,6日,exp (1))返回'3.1416 2.718282',96作为输出的字段宽度和精度EXP(1)

    请注意

    如果为超出输入数值数据类型精度的浮点值指定精度操作符,则输入值的结果可能与指定的精度不匹配。结果取决于你的计算机硬件和操作系统。

  • 子类型

    可以使用子类型操作符将浮点值打印为八进制、十进制或十六进制值。子类型操作符紧靠转换字符之前。该表显示了可以使用子类型的转换。

    输入值类型

    子类型和转换字符

    输出值类型

    浮点数

    % bx要么% bX
    %博
    % bu

    双精度十六进制、八进制或十进制值
    例子:% bx打印PI.作为400921 fb54442d18

    %tx.要么%tx.
    %到
    %TU.

    单精度十六进制、八进制或十进制值
    例子:%tx.打印PI.作为40490FDB.

格式化操作符前后的文本

formatSpec也可以在百分号前包含额外的文本,% gydF4y2Ba,或在转换字符之后。文本可以是:

  • 普通文本打印。

  • 不能作为普通文本输入的特殊字符。中特殊字符的表示方法formatSpec

    特殊字符

    表示

    单引号

    ''

    百分比的性格

    %%

    反斜杠

    \\

    警报

    、一个

    退格

    \ b

    换页

    \ f

    新行

    \ n

    回车

    \r

    水平选项卡

    \ t

    垂直制表符

    v \

    字符的Unicode®数值可以用十六进制数表示,N

    \ xN

    例子:sprintf(“\ x5A”)返回'Z'

    字符,其Unicode数值可以用八进制数表示,N

    \ N

    例子:Sprintf('\ 132')返回'Z'

使用格式运算符的转换的显着行为

  • 数字转换仅打印复杂数字的真实组件。

  • 如果指定的转换不适合数据,例如对数值的文本转换,MATLAB将重写指定的转换,并使用% e

    例子:' % s '转换PI.3.141593E + 00.

  • 如果您应用文本转换(或% c要么% s)到整数值,MATLAB将与有效字符代码对应的值转换为字符。

    例子:' % s '转换(65 66 67)美国广播公司

数字或字符数组,指定为标量,向量,矩阵或多维数组。

数据类型:单身的||INT8.|int16|int32|int64|uint8|uint16|UINT32.|UINT64|逻辑|字符

输出参数

全部折叠

那个字节数FPRINGF.写入,作为标量返回。当写入文件时,nbytes.由字符编码决定。当将数据打印到屏幕上时,nbytes.是显示在屏幕上的字符数。

提示

  • 读取函数的格式说明符SSCANF.fscanf与写入功能的格式不同sprintfFPRINGF..读取函数不支持精度字段。万博1manbetxwidth字段指定写入的最小值,但读取的最大值。

  • 如果指定无效的格式化操作符或特殊字符,则FPRINGF.将所有文本打印到无效的运算符或字符并丢弃其余的。

    例子:如果formatSpec'值=%z',然后FPRINGF.打印“价值= '因为% z不是格式化操作符。

    例子:如果formatSpec'字符\x99999 = %s',然后FPRINGF.打印“性格”因为\ x99999不是有效的特殊字符。

参考

[1] Kernighan,B. W.和D. M. Ritchie,C编程语言,第二版,Prentice-Hall,Inc。,1988年。

[2] ANSI specification X3.159-1989:“Programming Language C,”ANSI, 1430 Broadway, New York, NY 10018。

扩展功能

在R2006A之前介绍