#include #include #include #include int rows, cols; void clearInput() { for (int i = 0; i < cols; i ++) { mvprintw(rows - 1, i, " "); } } void printContent(char (*content)[cols+1]) { for (int i = rows - 2; i > 1; i --) { mvprintw(i, 0, "%s", content[rows - 2 - i]); } } void insertInStartContent(char (*content)[cols+1], char* toInsert) { for (int i = rows; i > 0; i --) { strcpy(content[i], content[i - 1]); } strcpy(content[rows], toInsert); } int main (int argc, char* argv[]) { initscr(); cbreak(); keypad(stdscr, TRUE); noecho(); char ch = ' '; int len = 0; char* cmd_string = malloc(cols); char (*content)[cols] = malloc(sizeof(char[rows][cols+1])); for (int i = 0; i < rows; i ++) { strcpy(content[i], " "); } getmaxyx(stdscr, rows, cols); while (ch = getch()){ switch (ch) { case 10: { // char* toInsert = malloc(cols+1); FILE* f = fopen("test.txt","w"); fprintf(f, "test: %s", cmd_string); fclose(f); insertInStartContent(content, cmd_string); len = 0; clearInput(rows, cols); cmd_string = ""; refresh(); break; } default: mvprintw(rows - 1 , len, "%c", ch); cmd_string[len] = ch; len ++; break; } printContent(content); mvprintw(rows - 1, len, ""); refresh(); } endwin(); return 0; }