gpt4 book ai didi

linux - 在 Octave 音程中,printf 给出了奇怪的错误

转载 作者:太空狗 更新时间:2023-10-29 12:20:12 24 4
gpt4 key购买 nike

在 GNU Octave 中,此代码出现错误。

A = cell(10,1);
A{5,1} = "foobar";
outputFile = fopen("mytext.txt", "w");
printf(outputFile, "%s", A{5,1});

我收到这个错误:

error: printf: format TEMPLATE must be a string

这个错误信息没有帮助,谷歌不知道这个错误是什么!怎么了?

最佳答案

找到了这个错误的解决方案。

您传递给 printf 的第一个参数必须是有效的格式字符串。您正在向它传递一个文件句柄。如果你想传递一个文件句柄,你应该使用 fprintf 来代替。如果您将第一个参数指定为文件,则 printf 会给您上述错误。

你应该这样做:

A = cell(10,1);
A{5,1} = "foobar";
outputFile = fopen("mytext.txt", "w");
fprintf(outputFile, "%s", A{5,1});

或者,如果你想打印到屏幕,删除 outputFile 参数:

A = cell(10,1);
A{5,1} = "foobar";
outputFile = fopen("mytext.txt", "w");
printf("%s", A{5,1});
% Here printf successfully casts the cell as a string. no error.

您向 printf 传递了错误的参数,而 Octave 试图理解这些废话。查看此网页以查看可以和不能传递到 Octave 的 printf 中的内容:

http://www.gnu.org/software/octave/doc/interpreter/Formatted-Output.html#doc-printf

关于linux - 在 Octave 音程中,printf 给出了奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11977260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com