Je tente de traquer une erreur dans un script R qui appelle un programme C++. Le R me dit que mon C++ a renvoyé NA - mais cela ne semble pas être le cas quand je regarde le programme. Il n'y a rien appelé qui aboutirait à NA dans R. D'où ma question, si R ne peut jamais capturer la sortie du programme C++, parce que return 0
est appelé avant que toute sortie ait été écrite sur la console.Un retour main() avant que tout cout a été écrit dans la console?
Mon programme écrit certains nombres sur la console. Un nombre par ligne, la dernière ligne se termine par endl
.
main()
{
cout<<33.12<<"\n"; //print a couple of number to cout
cout<<9711.3<<"\n"<<5699.14<<endl;
return 0;
}
Mon R-Script fait des choses comme ceci:
x <- as.numeric(system("./myProgram", intern=T))
if(any(is.na(x))) {
stop("Wooppp, x is NA: ", x)
}
Peut-il, que R ne soit pas la Cout-sortie par le programme? Cette question est liée à la R-question correspondante: DEOptim keeps telling: NaN value of objective function
Le 'endl' devrait ont rincé, et sinon 'cout' aurait du rougir à la sortie du programme. Cela dit, votre exemple est non compilable, ce qui laisse entendre que cela pourrait être un MCVE trop réduit et qu'il pourrait y en avoir plus ici. – user4581301
L'exemple fourni fonctionne correctement pour moi. Assurez-vous que vos MCVE reproduisent réellement le problème avant de les poster. – nrussell