Piszę program i chcę, aby użytkownik mógł określić, czy dane wyjściowe są zapisywane do pliku, czy do standardowego. Do tego momentu mój program korzystał z poleceń printf, więc miałem nadzieję, że po prostu zmienię polecenia na polecenia fprintf, ale mój kompilator krzyczy na mnie, ponieważ oczywiście nie są to te same klasy obiektów.C++ FILE wskaźnik na standardowe wyjście?
Na przykład:
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());
Wolałbym trzymać fprintf i znaleźć wskaźnik pliku na standardowe wyjście, czy ktoś wie, czy to możliwe? Jeśli odpowiedź brzmi "nie", czy mogę otworzyć moje pliki jako pliki fstream, a następnie użyć fprintf?
Oczywiście w idiomatycznym C++ używałbyś 'ostream &", który odwołuje się do 'std :: cout' lub' std :: ofstream' – MSalters