巧合的是,我发现disp(fprintf())打印fprintf字符串加上它拥有的字符数。我知道,disp()是红色的,但出于纯粹的好奇,我想知道为什么它会打印字符的数量,因为这可能有一天会有帮助。
例如
disp(fprintf('Hi %i all of you',2))结果:
嗨,你们都是15
发布于 2015-11-04 11:02:11
问题中提到的特定行为的原因是调用具有存储变量的FILEprintf fprintf:
nbytes = fprintf(___)使用前面的语法中的任何输入参数返回fprintf写入的字节数。
因此,disp(fprintf(...))首先按照fprintf打印文本,没有存储变量,但是disp只看到fprintf的存储变量,即字符串的字节数,因此输出。
另外,如果要显示字符串,则需要STRINGprintf:sprintf
disp(sprintf('Hi %i all of you',2))
Hi 2 all of you文档向我展示的是,sprintf专用于字符串格式,您可以使用它向图形添加文本、设置顺序文件名等,而fprintf则写入文本文件。
str = sprintf(formatSpec,A1,...,An)按列顺序将数据格式化为数组(A1,.,An),并将结果返回到stringstr。fprintf(fileID,formatSpec,A1,...,An)按列顺序将formatSpec应用于数组(A1,.An)的所有元素,并将数据写入文本文件。fprintf使用在调用fopen中指定的编码方案。fprintf(formatSpec,A1,...,An)格式化数据并在屏幕上显示结果。
因此,要在屏幕上显示文本,disp(sprintf())或fprintf是相等的,但是如果要将结果存储在字符串中,则必须使用sprintf,如果要将其写入文本文件,则必须使用fprintf。
发布于 2015-11-04 10:44:23
在fprintf上的文档中,您可以看到来自fprintf的输出是打印出来的字节数。在这里,fprintf打印Hi 2 all of you,disp打印fprintf返回的15。
https://stackoverflow.com/questions/33519743
复制相似问题