15


0

標準出力へのC ++ファイルポインタ?

私はプログラムを書いていますが、出力がファイルに書き込まれるか標準出力に書き込まれるかをユーザーが指定できるようにしたいと思います。 この時点まで、私のプログラムは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());

fprintfを使い続けて、stdoutへのFILEポインターを見つけたいのですが、それが可能かどうかは誰にもわかりますか? 答えが「いいえ」の場合、ファイルをfstreamsとして開き、fprintfを使用できますか?

2 Answer


35


stdout`は FILE * `なので、単純に使用できます:

FILE* fp = stdout;


7


アンパサンドを削除するだけです: fp = stdout;