63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
1

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

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

скажите как в плюсах чистить экран консоли? system("cls") не предлагать, мой препод сказал что cout и system("cls") не совместимы (почему хз), есть какое то чисто плюсовое решение?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2014, 16:11
Ответы с готовыми решениями:

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

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

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

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

8
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
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
Заблокирован
17.09.2014, 16:27 3
Цитата Сообщение от GetHelp Посмотреть сообщение
препод сказал что cout и system("cls") не совместимы
Цитата Сообщение от Тамика Посмотреть сообщение
system("pause>>null");
Что теперь преп на другой system скажет?
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
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
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
17.09.2014, 16:37 5
Цитата Сообщение от IrineK Посмотреть сообщение
Что теперь преп на другой system скажет?
А, да.
Можно заменить на getch().
Можно вообще убрать.
Это нужно всего лишь для того, чтобы успеть увидеть очистку экрана.
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
17.09.2014, 16:38  [ТС] 6
Цитата Сообщение от Тамика Посмотреть сообщение
Можно заменить на getch().
getch - сишная функция, юзаем cin.get
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
17.09.2014, 16:40 7
Цитата Сообщение от GetHelp Посмотреть сообщение
getch - сишная функция, юзаем cin.get
Да какая разница. В плюсах работает.
Что юзать - уже Ваше дело.
0
1369 / 592 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
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
Форумчанин
Эксперт CЭксперт С++
8191 / 5041 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
18.09.2014, 00:22 9
Цитата Сообщение от Тамика Посмотреть сообщение
Да какая разница. В плюсах работает.
Она не стандартная, правильнее писать _getch(). На никсах её нет.

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

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

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

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

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

Очистка экрана (кроссплатформенный способ)
Подскажите, пожалуйста, существует ли кроссплатформенный способ очистки экрана? в Windows я знаю...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru