これはプラットフォームに依存しない方法ですが、system('cls')
と書いてあるので、私はあなたがWindows上にいると仮定します。
Windowsには、コンソールを操作するために使用される一連のユーティリティー・ファンクションであるConsole Functions APIがあります。
は、カーソルの位置を設定し、スペースで上書き:あなたはここで2つのオプションがあり
また
#include <windows.h>
..
auto consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coordsToDelete = { row, col }; // the coordinates of what you want to delete
// Move the current cursor position back. Writing with std::cout will
// now print on those coordinates
::SetConsoleCursorPosition(consoleHandle, position);
// This will replace the character at (row, col) with space.
// Repeat as many times as you need to clear the line
std::cout << " ";
を、あなたは全体のコンソールバッファを取得し、それを直接変更することができます。
#include <windows.h>
..
auto consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
// Get a handle to the console buffer
GetConsoleScreenBufferInfo(consoleHandle, &csbi));
DWORD count;
COORD coords = { row, 0 };
DWORD cellCount = /* the length of your row */;
// Write the whitespace character to the coordinates in cellCount number of cells
// starting from coords. This effectively erases whatever has been written in those cells
FillConsoleOutputCharacter(
consoleHandle,
(TCHAR) ' ',
cellCount,
coords,
&count);
変更がない限りフレームバッファを直接、またはこれを行うことを意図したパッケージまたはユーティリティを見つけます。 – roelofs
[コンソール出力の一部だけを消去する](https://stackoverflow.com/questions/15063076/clearing-only-part-of-the-console-output) – roelofs
cursesライブラリを検索するhttps:// en.wikipedia.org/wiki/Curses_(programming_library) –