Comment puis-je faire fonctionner ce pseudo-code?Comment "paramétrer" un flux de sortie?
std::ostream ostr;
std::ofstream ofstr;
if(condition) {
ostr = std::cout;
}
else {
ofstr.open("file.txt");
ostr = ofstr;
}
ostr << "Hello" << std::endl;
Cela ne compile pas, puisque std::ostream
n'a pas de constructeur par défaut public.
La question liée n'est pas un en double _exact_, mais il est assez proche, et la réponse acceptée montre une solution à votre problème. – Useless
Dans votre cas, vous pouvez utiliser l'opérateur ternaire: 'std :: ostream & ostr = (condition? Std :: cout: (ofstr.open (" fichier.txt "), ofstr));' – Jarod42
@ Jarod42: juste essayé; cela fonctionne quand 'condition' est vrai, et j'obtiens la sortie sur cout, mais je n'obtiens aucun fichier écrit quand' condition' est faux. – Pietro