online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <unistd.h> #include <termios.h> #include <cerrno> #include <cstdio> char getch() { char buf = 0; struct termios old = {0}; if (tcgetattr(0, &old) < 0) perror("tcsetattr()"); old.c_lflag &= ~ICANON; old.c_lflag &= ~ECHO; old.c_cc[VMIN] = 1; old.c_cc[VTIME] = 0; if (tcsetattr(0, TCSANOW, &old) < 0) perror("tcsetattr ICANON"); if (read(0, &buf, 1) < 0) perror ("read()"); old.c_lflag |= ICANON; old.c_lflag |= ECHO; if (tcsetattr(0, TCSADRAIN, &old) < 0) perror ("tcsetattr ~ICANON"); return (buf); } int getchs(char* dest, int maxnum) { struct termios old = {0}; if (tcgetattr(0, &old) < 0) perror("tcsetattr()"); old.c_lflag &= ~ICANON; old.c_lflag &= ~ECHO; old.c_cc[VMIN] = 1; old.c_cc[VTIME] = 0; if (tcsetattr(0, TCSANOW, &old) < 0) perror("tcsetattr ICANON"); int rdNum=0; if ((rdNum=read(0, dest, maxnum)) < 0) perror ("read()"); old.c_lflag |= ICANON; old.c_lflag |= ECHO; if (tcsetattr(0, TCSADRAIN, &old) < 0) perror ("tcsetattr ~ICANON"); return rdNum; } #include <iostream> #include <cstdint> int main() { using namespace std; cout << "Waiting for input..."<< endl; for (;;) { //char c = getch(); const int maxChars = 8; // most I saw was 5 char buf[ maxChars + 1 ]; // +1 for terminating zero const int readNum = getchs(buf, maxChars); if (readNum>=0) buf[readNum] = '\0'; switch (readNum) { case 1: if (27 == buf[0]) // Esc key? return 0; cout << buf << endl; break; case 2 ... maxChars: for (int i=0; i<readNum; ++i) cout << hex << (unsigned)buf[i]; cout << endl; break; default: cout << "Unexpected byte count: "<< readNum << endl; break; } } return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue