1 // Common/StdOutStream.cpp
7 #include "StdOutStream.h"
8 #include "IntToString.h"
9 #include "StringConvert.h"
12 // "was declared deprecated" disabling
13 #pragma warning(disable : 4996 )
16 static const char kNewLineChar = '\n';
18 static const char *kFileOpenMode = "wt";
20 CStdOutStream g_StdOut(stdout);
21 CStdOutStream g_StdErr(stderr);
23 bool CStdOutStream::Open(const char *fileName)
26 _stream = fopen(fileName, kFileOpenMode);
27 _streamIsOpen = (_stream != 0);
31 bool CStdOutStream::Close()
35 if (fclose(_stream) != 0)
38 _streamIsOpen = false;
42 bool CStdOutStream::Flush()
44 return (fflush(_stream) == 0);
47 CStdOutStream::~CStdOutStream ()
52 CStdOutStream & CStdOutStream::operator<<(CStdOutStream & (*aFunction)(CStdOutStream &))
58 CStdOutStream & endl(CStdOutStream & outStream)
60 return outStream << kNewLineChar;
63 CStdOutStream & CStdOutStream::operator<<(const char *string)
65 fputs(string, _stream);
69 CStdOutStream & CStdOutStream::operator<<(const wchar_t *string)
71 *this << (const char *)UnicodeStringToMultiByte(string, CP_OEMCP);
75 CStdOutStream & CStdOutStream::operator<<(char c)
81 CStdOutStream & CStdOutStream::operator<<(int number)
84 ConvertInt64ToString(number, textString);
85 return operator<<(textString);
88 CStdOutStream & CStdOutStream::operator<<(UInt64 number)
91 ConvertUInt64ToString(number, textString);
92 return operator<<(textString);