Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
GetHelp
60 / 61 / 11
Регистрация: 27.02.2013
Сообщений: 1,112
1

Очистка экрана

17.09.2014, 16:11. Просмотров 1175. Ответов 8
Метки нет (Все метки)

скажите как в плюсах чистить экран консоли? system("cls") не предлагать, мой препод сказал что cout и system("cls") не совместимы (почему хз), есть какое то чисто плюсовое решение?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2014, 16:11
Ответы с готовыми решениями:

очистка экрана в C
не получается очистить экран( вроде библиотеку подключил (conio.h)...

Очистка экрана
Пытаюсь сделать игрушку, но при очищении экрана через cls, чтобы отпечатать уже...

очистка экрана недоконца
Допустим я вывел на консоль следующие три строки: aaaaaaaaa bbbbbbbbb...

Частичная очистка экрана
Есть ли какой-нибудь аналог clrscr() только чтобы очищал не весь экран,а...

Очистка экрана в консоли
Всем привет, вот такой вот вопрос. вот например у меня в консоли текст, я...

8
Тамика
Котовчанин
928 / 469 / 199
Регистрация: 16.02.2010
Сообщений: 3,304
Записей в блоге: 30
17.09.2014, 16:20 2
Шокируйте препода.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <Windows.h>
 
void ClearConsole ()
{
    HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    DWORD written;
    COORD zeroPos = {0,0};
 
    if (GetConsoleScreenBufferInfo (consoleHandle, &csbi))
    {
        DWORD numChars = csbi.dwSize.X * csbi.dwSize.Y;
 
        FillConsoleOutputCharacter (consoleHandle, ' ', numChars, zeroPos, &written);
        FillConsoleOutputAttribute (consoleHandle, csbi.wAttributes, numChars, zeroPos, &written);
    }
    SetConsoleCursorPosition (consoleHandle, zeroPos);
}
 
int main()
{
    int in = 0;
    std::cin >> in;
    std::cout << in / 10 << " " << in % 10;
    Sleep(1000);
    ClearConsole();
    system("pause>>null");
    return 0;
}
1
IrineK
Заблокирован
17.09.2014, 16:27 3
Цитата Сообщение от GetHelp Посмотреть сообщение
препод сказал что cout и system("cls") не совместимы
Цитата Сообщение от Тамика Посмотреть сообщение
system("pause>>null");
Что теперь преп на другой system скажет?
0
GetHelp
60 / 61 / 11
Регистрация: 27.02.2013
Сообщений: 1,112
17.09.2014, 16:36  [ТС] 4
Цитата Сообщение от IrineK Посмотреть сообщение
Что теперь преп на другой system скажет?
да да да на system он в принципе ругался надеюсь ваша функция хоть понравится... вот так модифицировал и дописал pause

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
bool ClearConsole()
{
    HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    DWORD written;
    COORD zeroPos = { 0, 0 };
 
    if (GetConsoleScreenBufferInfo(consoleHandle, &csbi))
    {
        DWORD numChars = csbi.dwSize.X * csbi.dwSize.Y;
 
        FillConsoleOutputCharacter(consoleHandle, ' ', numChars, zeroPos, &written);
        FillConsoleOutputAttribute(consoleHandle, csbi.wAttributes, numChars, zeroPos, &written);
    }
    SetConsoleCursorPosition(consoleHandle, zeroPos);
    return consoleHandle;
}
 
char pause(bool inscription = true, bool cls = false)
{
    if (inscription) cout << "Для продолжения нажмите любую клавишу . . . ";
    char key = cin.get();
    if (cls) ClearConsole();
    return key;
}
0
Тамика
Котовчанин
928 / 469 / 199
Регистрация: 16.02.2010
Сообщений: 3,304
Записей в блоге: 30
17.09.2014, 16:37 5
Цитата Сообщение от IrineK Посмотреть сообщение
Что теперь преп на другой system скажет?
А, да.
Можно заменить на getch().
Можно вообще убрать.
Это нужно всего лишь для того, чтобы успеть увидеть очистку экрана.
0
GetHelp
60 / 61 / 11
Регистрация: 27.02.2013
Сообщений: 1,112
17.09.2014, 16:38  [ТС] 6
Цитата Сообщение от Тамика Посмотреть сообщение
Можно заменить на getch().
getch - сишная функция, юзаем cin.get
0
Тамика
Котовчанин
928 / 469 / 199
Регистрация: 16.02.2010
Сообщений: 3,304
Записей в блоге: 30
17.09.2014, 16:40 7
Цитата Сообщение от GetHelp Посмотреть сообщение
getch - сишная функция, юзаем cin.get
Да какая разница. В плюсах работает.
Что юзать - уже Ваше дело.
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
17.09.2014, 20:52 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 #include <windows.h>
 
void gotoxy(int xpos, int ypos)
{
  COORD scrn;
  HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
  scrn.X = xpos; scrn.Y = ypos;
  SetConsoleCursorPosition(hOuput,scrn);
}
 
using namespace std;
   int main () 
   {
    string S;
    getline(cin,S);
    cout<<S<<"\n";
   for (int i=0; i<20; i++) std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
    gotoxy(0,0);
    cout<<"hi";
    //cin.get(); если сразу закрывается
   return 0; 
  }
В CodeBlock чистится.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8105 / 4957 / 1436
Регистрация: 29.11.2010
Сообщений: 13,451
18.09.2014, 00:22 9
Цитата Сообщение от Тамика Посмотреть сообщение
Да какая разница. В плюсах работает.
Она не стандартная, правильнее писать _getch(). На никсах её нет.

Думаю, препод ожидал увидеть std::cin.get()

Добавлено через 34 секунды
Цитата Сообщение от daslex Посмотреть сообщение
В CodeBlock чистится.
Это IDE, в нём может стоять любой компилятор.
0
18.09.2014, 00:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2014, 00:22

очистка экрана на DevC++
Почему пишет ошибку оператора очистки экрана clrscr () на DevC++ ?

Очистка экрана в консоли
Добрый день. Столкнулся со следующей проблемой! Допустим есть консольное...

Подсчет строк и очистка экрана С++
Добрый НОЧИ Возник вопрос после заполнения всего экрана (свободных строк...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru