Очистить экранную команду в C ++ - PullRequest
3 голосов
/ 07 марта 2012

Я хочу очистить экран после того, как пользователь введет некоторые числа в C ++.Я программирую в режиме консольного приложения.

так как это сделать?Моя ОС win7, а моя IDE - это CodeBlocks, а компилятор - MingW ...

Ответы [ 7 ]

5 голосов
/ 07 марта 2012

Это зависит от вашей ОС. Если вы используете linux:

system("clear");

Если вы используете windows:

system("cls"); 

, но это делает ваше приложение гибким, лучше сделать это

cout << string(50, '\n');

эта строка будет печатать строки, которые выглядят так, как будто терминал «очищен».

Хорошая статья об этой проблеме: http://www.cplusplus.com/articles/4z18T05o/

3 голосов
/ 07 марта 2012

вы можете использовать clrscr(), определенный в conio.h.Но почему бы вам не зайти в Google, прежде чем спросить?

способов очистки экрана на выходе

2 голосов
/ 07 марта 2012

Вы можете попробовать системные методы, например, system ("CLS");

1 голос
/ 06 октября 2013

система ("cls");

Brilliant.Так что же произойдет, если я заменю Windows cls своими вредоносными cls?Вы только что дали мне контроль, спасибо!Это то, что называется задней дверью, и вы широко ее открыли, используя небезопасную технику.

Источник: http://www.daniweb.com/software-development/cpp/threads/76934/how-do-i-clear-my-screen-in-c.

1 голос
/ 12 апреля 2013

Вот что Microsoft говорит об очистке консоли:

#include <windows.h>

void cls( HANDLE hConsole )
{
   COORD coordScreen = { 0, 0 };    // home for the cursor
   DWORD cCharsWritten;
   CONSOLE_SCREEN_BUFFER_INFO csbi;
   DWORD dwConSize;

   // Get the number of character cells in the current buffer.

   if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
   {
      return;
   }

   dwConSize = csbi.dwSize.X * csbi.dwSize.Y;

   // Fill the entire screen with blanks.

   if( !FillConsoleOutputCharacter( hConsole,        // Handle to console screen buffer
                                    (TCHAR) ' ',     // Character to write to the buffer
                                    dwConSize,       // Number of cells to write
                                    coordScreen,     // Coordinates of first cell
                                    &cCharsWritten ))// Receive number of characters written
   {
      return;
   }

   // Get the current text attribute.

   if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
   {
      return;
   }

   // Set the buffer's attributes accordingly.

   if( !FillConsoleOutputAttribute( hConsole,         // Handle to console screen buffer
                                    csbi.wAttributes, // Character attributes to use
                                    dwConSize,        // Number of cells to set attribute
                                    coordScreen,      // Coordinates of first cell
                                    &cCharsWritten )) // Receive number of characters written
   {
      return;
   }

   // Put the cursor at its home coordinates.

   SetConsoleCursorPosition( hConsole, coordScreen );
}

int main()
{
    HANDLE hStdout;

    hStdout = GetStdHandle(STD_OUTPUT_HANDLE);

    cls(hStdout);
    return 0;
}
1 голос
/ 17 марта 2012

ссылка на conio.h в вашем компиляторе. Я забыл, как это сделать. если вы будете использовать очистку экрана, повторно включите эту функцию.

enter code here
void clrscr()
{
  system("cls");
}
0 голосов
/ 07 марта 2012

Один из способов - вывести '\ f' (соответствует символу подачи формы ASCII, код 12, который используется линейными принтерами для извлечения страницы и распознается некоторыми общими терминалами и эмуляторами как чистый экран).

Это не будет работать в Windows.

#ifdef _WIN32
/* windows hack */
#else
std::cout << '\f' std::flush;
#endif
...