2

ofstream引数をオプションにするにはどうすればよいですか?

bool LookingFor(std::string &mi_name, ofstream &my_file = std::cout)
{
    my_file << xxx;
.......

}

上記のメソッドシグネチャでのコンパイルエラーは次のとおりです。

'std :: ofstream&my_file'のタイプは'std :: ostream {aka std :: basic_ostream}'

私はmingw32を使用しています。

2番目のパラメーターがない場合に、この関数をコンソールに書き込みたい。無数のことを試しましたが、何も機能しません。たとえば、コードが開いているかどうかを確認するためにコードをチェックする必要があるかどうかは気にしません。

if(my_file.isopen())
    my_file << xxx;
else
    cout << xxx;

何か良い考えはありますか?

4

1 に答える 1

4

使用するだけostreamです:

bool LookingFor(std::string &mi_name, std::ostream &out = std::cout) {
    out << xxx;
}

fstreamこれは、 だけでなく、任意のストリーム タイプで機能しますcout。などの他のストリーム タイプostringstream

于 2013-02-11T11:16:14.003 に答える