Estoy escribiendo un programa y quiero que el usuario pueda especificar si la salida se escribe en un archivo o en stdout. Hasta este punto, mi programa ha estado usando comandos printf, así que esperaba simplemente cambiar los comandos a comandos fprintf, pero mi compilador me grita porque obviamente no son las mismas clases de objetos.C++ Indicador FILE a stdout?
Por ejemplo:
FILE *fp;
bool print_to_file;
.
.
.
if(print_to_file){
fp = fopen("something.txt", "w");
}
else{
fp = &stdout;
}
fprintf(fp,"%s\t%s\t%s\n",string1 . c_str(), string2 . c_str(), string3 . c_str());
preferiría seguir con fprintf y encontrar un apuntador de archivo a la salida estándar, ¿alguien sabe si eso es posible? Si la respuesta es no, ¿puedo abrir mis archivos como fstreams y luego usar fprintf?
Por supuesto, en C++ idiomático usaría un 'ostream &' que hace referencia a 'std :: cout' o' std :: ofstream' – MSalters