Как очистить консоль в c++?

Какими способам кроме:
1) system("cls"); (так как system занят)"pause"
2)
for(int = 0; int < 25; i++) (нелогично)
                    cout << "\n";

можно очистить консоль?
P.S. можно решение только под Win - без разницы.
  • Вопрос задан
  • 55266 просмотров
Решения вопроса 2
galexcode
@galexcode
Если только под винду то
#include <windows.h>

void ClearScreen()
  {
  HANDLE                     hStdOut;
  CONSOLE_SCREEN_BUFFER_INFO csbi;
  DWORD                      count;
  DWORD                      cellCount;
  COORD                      homeCoords = { 0, 0 };

  hStdOut = GetStdHandle( STD_OUTPUT_HANDLE );
  if (hStdOut == INVALID_HANDLE_VALUE) return;

  /* Get the number of cells in the current buffer */
  if (!GetConsoleScreenBufferInfo( hStdOut, &csbi )) return;
  cellCount = csbi.dwSize.X *csbi.dwSize.Y;

  /* Fill the entire buffer with spaces */
  if (!FillConsoleOutputCharacter(
    hStdOut,
    (TCHAR) ' ',
    cellCount,
    homeCoords,
    &count
    )) return;

  /* Fill the entire buffer with the current colors and attributes */
  if (!FillConsoleOutputAttribute(
    hStdOut,
    csbi.wAttributes,
    cellCount,
    homeCoords,
    &count
    )) return;

  /* Move the cursor home */
  SetConsoleCursorPosition( hStdOut, homeCoords );
  }
Ответ написан
@cdkrot
www.cplusplus.com/forum/articles/10515
Посмотрите способы: "ncurses" и "conio.h".
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
galexcode
@galexcode
printf("\e[1;1H\e[2J");
Работает везде
Ответ написан
Комментировать
icelaba
@icelaba
Знаю и умею всё
Так логичней?
cout << string( 100, '\n' );

Под виндовс вот support.microsoft.com/kb/99261
начиная отсюда #define PERR(bSuccess, a
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы