首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >disp( fprintf ())打印fprintf和字符数。为什么?

disp( fprintf ())打印fprintf和字符数。为什么?
EN

Stack Overflow用户
提问于 2015-11-04 10:42:20
回答 2查看 2.1K关注 0票数 4

巧合的是,我发现disp(fprintf())打印fprintf字符串加上它拥有的字符数。我知道,disp()是红色的,但出于纯粹的好奇,我想知道为什么它会打印字符的数量,因为这可能有一天会有帮助。

例如

代码语言:javascript
复制
disp(fprintf('Hi %i all of you',2))

结果:

嗨,你们都是15

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-04 11:02:11

问题中提到的特定行为的原因是调用具有存储变量的FILEprintf fprintf

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

因此,disp(fprintf(...))首先按照fprintf打印文本,没有存储变量,但是disp只看到fprintf的存储变量,即字符串的字节数,因此输出。

另外,如果要显示字符串,则需要STRINGprintf:sprintf

代码语言:javascript
复制
disp(sprintf('Hi %i all of you',2))
Hi 2 all of you

文档向我展示的是,sprintf专用于字符串格式,您可以使用它向图形添加文本、设置顺序文件名等,而fprintf则写入文本文件。

str = sprintf(formatSpec,A1,...,An)按列顺序将数据格式化为数组( A1,.,An ),并将结果返回到string strfprintf(fileID,formatSpec,A1,...,An)按列顺序将formatSpec应用于数组( A1,.An)的所有元素,并将数据写入文本文件。fprintf使用在调用fopen中指定的编码方案。 fprintf(formatSpec,A1,...,An)格式化数据并在屏幕上显示结果。

因此,要在屏幕上显示文本,disp(sprintf())fprintf是相等的,但是如果要将结果存储在字符串中,则必须使用sprintf,如果要将其写入文本文件,则必须使用fprintf

票数 11
EN

Stack Overflow用户

发布于 2015-11-04 10:44:23

fprintf上的文档中,您可以看到来自fprintf的输出是打印出来的字节数。在这里,fprintf打印Hi 2 all of youdisp打印fprintf返回的15。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33519743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档