SNAP Library 2.0, Developer Reference
2013-05-13 16:33:57
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
|
00001 00002 // Console Output 00003 TCon::TCon() { 00004 #if defined (GLib_CreateConsole) 00005 Ok = (AllocConsole() != 0); 00006 HStdOut = GetStdHandle(STD_OUTPUT_HANDLE); 00007 IAssert(HStdOut != INVALID_HANDLE_VALUE); 00008 #endif 00009 } 00010 00011 TCon::~TCon() { 00012 #if defined (GLib_CreateConsole) 00013 if (Ok) IAssert(FreeConsole()); 00014 #endif 00015 } 00016 00017 void TCon::PutBf(const void *LBf, const int& LBfL) { 00018 #if defined (GLib_Console) 00019 #if defined (GLib_CreateConsole) 00020 DWORD ChsWritten; 00021 WriteConsole(HStdOut, LBf, LBfL, &ChsWritten, 0); 00022 IAssert(ChsWritten == static_cast<DWORD>(LBfL)); 00023 #else 00024 fwrite(LBf, sizeof(char), LBfL, stdout); 00025 #endif 00026 #endif 00027 } 00028 00029 TCon& TCon::operator << (const int& Int) { 00030 char Bf[255]; 00031 sprintf(Bf, "%d", Int); 00032 PutBf((void *) Bf, int(strlen(Bf))); 00033 return *this; 00034 } 00035 00036 TCon& TCon::operator << (const uint& UInt) { 00037 char Bf[255]; 00038 sprintf(Bf, "%u", UInt); 00039 PutBf((void *) Bf, int(strlen(Bf))); 00040 return *this; 00041 } 00042 00043 TCon& TCon::operator << (const float& Flt) { 00044 char Bf[255]; 00045 sprintf(Bf, "%g", Flt); 00046 PutBf((void *) Bf, int(strlen(Bf))); 00047 return *this; 00048 00049 } 00050 00051 TCon& TCon::operator << (const double& Double) { 00052 char Bf[255]; 00053 sprintf(Bf, "%g", Double); 00054 PutBf((void *) Bf, int(strlen(Bf))); 00055 return *this; 00056 } 00057 00058 TCon& TCon::operator << (const long double& LDouble) { 00059 char Bf[255]; 00060 sprintf(Bf, "%Lg", LDouble); 00061 PutBf((void *) Bf, int(strlen(Bf))); 00062 return *this; 00063 } 00064 00065 void TCon::operator () (const char * FmtStr, ...) { 00066 static char Bf [2048]; 00067 va_list valist; va_start(valist, FmtStr); 00068 int BfL=vsnprintf(Bf, 2048, FmtStr, valist); va_end(valist); 00069 if (BfL!=-1){PutBf((void *) Bf, BfL);} 00070 else {PutBf((void *) Bf, 2048);} 00071 } 00072 00073 TCon& Eol(TCon& Con) { 00074 Con.PutCh('\n'); return Con; 00075 } 00076 00077 TCon& Tab(TCon& Con) { 00078 Con.PutCh('\t'); return Con; 00079 } 00080 00081 TCon& Spc(TCon& Con) { 00082 Con.PutCh(' '); return Con; 00083 } 00084 00085 #if defined (GLib_Console) 00086 TCon Con; 00087 #endif