C++ FILE指向stdout的指针?

Mit*_*tch 16 c++

我正在编写一个程序,我希望用户能够指定输出是写入文件还是写入stdout.在此之前,我的程序一直在使用printf命令,所以我希望简单地将命令更改为fprintf命令,但是我的编译器对我大喊大叫,因为很明显,它们不是同一个对象类.

例如:

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());
Run Code Online (Sandbox Code Playgroud)

我更喜欢坚持使用fprintf并找到一个指向stdout的FILE指针,是否有人知道这是否可能?如果答案是否定的,我可以将文件打开为fstreams,然后使用fprintf吗?

Jam*_*lis 37

stdout是一个FILE*,所以你可以简单地使用:

FILE* fp = stdout;
Run Code Online (Sandbox Code Playgroud)


Dim*_*ima 7

只需放下&符号:fp = stdout;.