etrobocon2019 feat.KatLab  ece30a9a007fff7d3ad48592c0d09a74643377bb
公開メンバ関数 | 全メンバ一覧
Logger クラス

#include <Logger.h>

Logger 連携図
Collaboration graph

公開メンバ関数

 Logger (const char *fileName="log.csv", const char *mode="w")
 ファイルポインターを確保するコンストラクター [詳解]
 
 ~Logger ()
 ファイルポインターを解放するデストラクター [詳解]
 
void write (const char *format,...)
 指定したデータを出力ファイルに書き込む Usage: foo.write("%d,%f,%s\n", x, y, z); [詳解]
 
template<typename T >
LogFile::TemporaryObject operator<< (T data)
 指定したデータを出力ファイルに書き込む Usage: foo << 1 << 2.4 << "aa"; (自動的にデリミターと改行が挿入される) [詳解]
 

詳解

Logger.h77 行目に定義があります。

構築子と解体子

◆ Logger()

Logger::Logger ( const char *  fileName = "log.csv",
const char *  mode = "w" 
)

ファイルポインターを確保するコンストラクター

引数
mode[ファイルの書き込みモード(デフォルトでは新規書き込み)]

Logger.cpp26 行目に定義があります。

27 {
28  fp = fopen(fileName, mode);
29  assert(fp != nullptr);
30 }

◆ ~Logger()

Logger::~Logger ( )

ファイルポインターを解放するデストラクター

Logger.cpp32 行目に定義があります。

33 {
34  fclose(fp);
35 }

関数詳解

◆ operator<<()

template<typename T >
LogFile::TemporaryObject Logger::operator<< ( data)
inline

指定したデータを出力ファイルに書き込む Usage: foo << 1 << 2.4 << "aa"; (自動的にデリミターと改行が挿入される)

引数
data[記録するデータ]

Logger.h106 行目に定義があります。

107  {
108  LogFile::TemporaryObject object(fp);
109  object << data;
110  return object;
111  }

◆ write()

void Logger::write ( const char *  format,
  ... 
)

指定したデータを出力ファイルに書き込む Usage: foo.write("%d,%f,%s\n", x, y, z);

引数
format[書式指定子]

Logger.cpp37 行目に定義があります。

38 {
39  // 可変長引数の展開
40  va_list args;
41  va_start(args, format);
42 
43  // ファイル出力
44  std::vfprintf(fp, format, args);
45 
46  va_end(args);
47 }

このクラス詳解は次のファイルから抽出されました: