我尝试追踪调用C++程序的R脚本中的错误。 R告诉我,我的C++返回了NA - 但是当我浏览这个程序时似乎并不是这样。在R中没有任何调用会导致NA。因此,我的问题是,如果R可能永远不会捕获C++程序的输出,因为在将所有输出写入控制台之前调用return 0
。在所有的cout被写入CONSOL之前,main()是否可以返回?
我的程序确实写了一些数字到控制台。每行一个数字,最后一行以endl
结尾。
main()
{
cout<<33.12<<"\n"; //print a couple of number to cout
cout<<9711.3<<"\n"<<5699.14<<endl;
return 0;
}
我的R-脚本做这样的东西:
x <- as.numeric(system("./myProgram", intern=T))
if(any(is.na(x))) {
stop("Wooppp, x is NA: ", x)
}
它可以,就是R不从程序获得COUT输出? 这个问题是关系到相应的R-问题: DEOptim keeps telling: NaN value of objective function
的'endl'应已经刷新,如果没有'cout'应该在程序退出时刷新。也就是说,你的例子是不可编译的,暗示这可能是一个过度缩减的MCVE,并且可能会有更多的事情在这里发生。 – user4581301
提供的示例适用于我。确保您的MCVE在发布之前实际上重现了问题。 – nrussell