如何解决我可以在基于 rcpp 的 C++ 函数中使用 fprintf 吗?
我在网上找到了一些我想在 R 项目中使用的代码。我设法编译并使用
调用所有内容libary(Rcpp)
sourceCpp("rcpp/my_function.cpp")
my_function("testdata.dat","testout.dat",opt_verbose = 1)
在函数中有几个 fprintf 调用,例如
fprintf(stderr,"Error: minvotes < 0!\n%s",usage);
但是它们不会打印到 R 控制台。有没有办法在使用函数时看到fprintf
的输出?
解决方法
一些事情:
a) 这在任何标准终端的标准 R 会话中都可以正常工作:
> Rcpp::cppFunction("void printDemo() { fprintf(stderr,\"hello,world\\n\"); }")
> printDemo()
hello,world
>
并且请注意,为了与 cppFunction()
一起使用,我必须转义引号和反斜杠。因此,如果这对您不起作用您的终端/显示器有问题。你用的是哪个?
b) 但是你不应该使用它——而且Writing R Extensions 对此非常清楚。
c) 这就是为什么我们主要使用 wrapper Rcpp::Rcout
和 Rcpp::Rcerr
,它们根据编写 R 扩展的要求重定向到 R 自己的缓冲输入/输出.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。