これは数日間に行われたもので、私は単純なものが欠けていると思います。入力は何も、文字列、int型などの代わりに、私はログを使用するCOUTのこと、およびデータのすべてをキャッチし、ファイルに書き込むことができますファイルにデータを書き込むC++のような関数(ログ)
cout << "Testing" << 5;
注: は、これはどのようにcoutの作品です。これが欲しい:
log << "Testing" << 5;
私は得ている。 ヘッダー:
class LogFile {
public:
void write(std::string input);
int operator<<(const char u[100]);
int operator<<(const int u);
};
C++
実行されるコード(書かれているだけで、 "テスト"、int型は無視されます)int LogFile::operator<<(const char u[100]) {
std::string s;
std::stringstream ss;
ss << u;
s = ss.str();
this->write(s);
return 0;
};
int LogFile::operator<<(const int u) {
std::string s;
std::stringstream ss;
ss << u;
s = ss.str();
this->write(s);
return 0;
};
:
LogFile log;
log << "Testing" << 5;
目標はどの模倣関数を記述することですcoutとなりますが、印刷する代わりに、データがファイルに書き込まれます。アドバイスや助けをいただければ幸いです!
すでに 'std :: clog'があります。出力をリダイレクトすることができます。 – chris
@chris、またはcoutをリダイレクトすることもできます。 – SergeyA
'operator <<'が呼び出されたオブジェクトへの参照( 'LogFile'オブジェクト)を返すだけで、戻り値の型を適切に変更し、' cout'のような出力操作を連鎖させることができます。一方、必要なものすべてがすでに提供されているときに、独自のログユーティリティを作成することに悩むのはなぜですか? – Paul