Dave's Brain

Browse - Programming Tips - How can I read/write from the console?

Date: 2016mar1
OS: Windows
Keywords: ReadConsoleInput, WriteConsoleInput

Q.  How can I read/write from the console?

A.  Here is a class that does that.

--- console.h ---

class Console { private: HANDLE m_hStdin; HANDLE m_hStdout; public: Console(); char getch(); BOOL putch(const char c); BOOL puts(LPCSTR); }
--- console.cpp ---
#include "console.h" Console::Console() { m_hStdin = GetStdHandle(STD_INPUT_HANDLE); m_hStdout = GetStdHandle(STD_OUTPUT_HANDLE); } char Console::getch() { INPUT_RECORD input_record; DWORD bytes_read = 0; for (;;) { if (!ReadConsoleInput(m_hStdin, &input_record, 1, &bytes_read)) return -1; } return input_record.Event.KeyEvent.uChar.AsciiChar; } BOOL Console::putch(const char c) { char buf[2] = { c }; DWORD written; DWORD unused; BOOL bResult; bResult = WriteConsole( m_hStdout, buf, 1, &written, &unused); if (!bResult) return FALSE; return written == 1; } BOOL Console::puts(LPCSTR s) { BOOL bResult = TRUE; for (LPCSTR p = s; *p; p++) { if (!putch(*p)) bResult = FALSE; } return bResult; }

Add a comment

Sign in to add a comment
Copyright © 2008-2017, dave - Code samples on Dave's Brain is licensed under the Creative Commons Attribution 2.5 License. However other material, including English text has all rights reserved.