Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Очиста "черного окна", Стереть всё 
:(
    Опции темы
DoDo
Дата 6.9.2005, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2005

Репутация: нет
Всего: нет



Всем Добрый День !
Есть ли функция под C++ (под консоль) , чтобы очистить окно от текста ?
Жду от Вас размышлений спасибо !
PM MAIL   Вверх
_hunter
Дата 6.9.2005, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



clrscr() из conio.h


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Mayk
Дата 6.9.2005, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(_hunter @ 6.9.2005, 17:01)
clrscr() из conio.h

Эт под борлой. Под виндой вообще можно юзать FillConsoleOutputCharacter. Пример взят с http://www.experts-exchange.com/Programmin...Q_10465598.html
Код

Comment from Assembly_dot_NET
Date: 05/07/2004 06:49AM PDT

// adapted from:
//    MSDN\Platform SDK\Reference\Code Sample\WINUI\CONSOLE\CONSOLE.C

void cls()
{
  COORD coordScreen = { 0, 0 }; /* here's where we'll home the cursor */
  DWORD cCharsWritten;
  CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */
  DWORD dwConSize; /* number of character cells in the current buffer */
 
  /* get the output console handle */
  HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
  /* get the number of character cells in the current buffer */
  GetConsoleScreenBufferInfo(hConsole, &csbi);
  dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
  /* fill the entire screen with blanks */
  FillConsoleOutputCharacter(hConsole, (TCHAR) ' ',
      dwConSize, coordScreen, &cCharsWritten);
  /* get the current text attribute */
  GetConsoleScreenBufferInfo(hConsole, &csbi);
  /* now set the buffer's attributes accordingly */
  FillConsoleOutputAttribute(hConsole, csbi.wAttributes,
      dwConSize, coordScreen, &cCharsWritten);
  /* put the cursor at (0, 0) */
  SetConsoleCursorPosition(hConsole, coordScreen);
  return;
}



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
DoDo
Дата 6.9.2005, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2005

Репутация: нет
Всего: нет



Уже не компилит :

Код

#include <conio.h>
void main()
{
clrscr();    
}


Ну если под борлой , тогда ясно почему не компилит .


Это сообщение отредактировал(а) DoDo - 6.9.2005, 13:45
PM MAIL   Вверх
DoDo
Дата 6.9.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2005

Репутация: нет
Всего: нет



Mayk , не получается ею воспользоваться ...
Даже самая просто программа , не стирает ...
Дописал на быструю руку , поидее не должно появляться сообщения
cout << "ASD";
Как я понял cls(); эта функция должна очистить экран , но сообщение остается , значит что-то не так ...
Вот ее код:
Код

#include <stdio.h>
#include <iostream.h>
#include <windows.h>


void cls()
{
  COORD coordScreen = { 0, 0 }; /* here's where we'll home the cursor */
  DWORD cCharsWritten;
  CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */
  DWORD dwConSize; /* number of character cells in the current buffer */
 
  /* get the output console handle */
  HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
  /* get the number of character cells in the current buffer */
  GetConsoleScreenBufferInfo(hConsole, &csbi);
  dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
  /* fill the entire screen with blanks */
  FillConsoleOutputCharacter(hConsole, (TCHAR) ' ',
      dwConSize, coordScreen, &cCharsWritten);
  /* get the current text attribute */
  GetConsoleScreenBufferInfo(hConsole, &csbi);
  /* now set the buffer's attributes accordingly */
  FillConsoleOutputAttribute(hConsole, csbi.wAttributes,
      dwConSize, coordScreen, &cCharsWritten);
  /* put the cursor at (0, 0) */
  SetConsoleCursorPosition(hConsole, coordScreen);
  return;
} 
 
void main()
{
    cout << "ASD";
    cls();
}


PM MAIL   Вверх
DoDo
Дата 6.9.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2005

Репутация: нет
Всего: нет



Если у кого есть еще версии очистки "черного окошка" , то пишите их сюда . В этот топик !
Под очисткой я подразумеваю , то что есть текст и после этой команды или функции , всё стирается например :

Код

cout << "ASD\n";
ALL_CLEAR();  /*ВЫМЫШЛЕННАЯ ФУНКЦИЯ*/


Вот , после этого должно быть пусто , просто пустой черное окно ...

PM MAIL   Вверх
Mayk
Дата 6.9.2005, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



На bcc55 срабатывает.
Цитата(DoDo @ 6.9.2005, 18:01)
cout << "ASD";

Попробуй дописать << endl. Ну или cout.flush();
Что за компилятор?


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
DoDo
Дата 6.9.2005, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2005

Репутация: нет
Всего: нет



Visual C++ 6 , но у меня не один из этих двух способов тоже не помогает решить задачу .
Ты сам делал ? У тебя работало ?
Если всё работает , то напиши код , прямо копию .
Копию кода - которую ты компилил .
Если не трудно .
Спасибо .

Это сообщение отредактировал(а) DoDo - 6.9.2005, 15:52
PM MAIL   Вверх
Helicopterr
Дата 6.9.2005, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



первый раз слышу чтобы clrscr(); не работало...


--------------------
people can fly
PM MAIL   Вверх
Mayk
Дата 7.9.2005, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(DoDo @ 6.9.2005, 19:47)
Ты сам делал ? У тебя работало ?

Цитата(DoDo @ 6.9.2005, 19:47)
Копию кода - которую ты компилил .

Я с твоего поста только что закутнпастил и скомпилил. Работает нормально. А что у тебя не работает? Экран вообще не очищается, или еще что-то?

Цитата(Helicopterr @ 7.9.2005, 01:03)
первый раз слышу чтобы clrscr(); не работало...

А что, в Visual C++ 6 разве есть clrscr? В vc7 его точно нет. 6 вязанку не видел, в 5-ой кажется этой ф-ции тоже нет.



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
vinick
Дата 7.9.2005, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 9.6.2005

Репутация: 3
Всего: 22



самый тупой, но гарантированно рабочий вариант:
Код

  for(int i=0; i < 500; ++i)
      std::cout<<std::endl;


Вместо 500 итераций можно сделать меньше, главное чтобы не меньше числа строк в консоли.

PM MAIL ICQ Jabber   Вверх
pablo
Дата 7.9.2005, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



а system("cls") не пробовали если работаете под виндавозом ?


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
DoDo
Дата 7.9.2005, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 11.8.2005

Репутация: нет
Всего: нет



Вопрос решен .
PM MAIL   Вверх
Romikgy
Дата 7.9.2005, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



И как?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Mayk
  Дата 7.9.2005, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(pablo @ 7.9.2005, 17:49)
system("cls")

Ты хорошо представляешь кол-во потраченного времени?
Код

    for(int i=0;i != 0x7ffff; ++i)
        cls();
//        system("cls");

cls справляется с 0x7ffff стираниями менее чем за секунду. system("cls") - нет. На 10ой секунде(во время его работы я открыл виндозные часы и отсчитал 10 секунд по ним. реально он работал дольше) я банально нажал ctrl-c.
system используется не для того, чтобы стирать экран

Это сообщение отредактировал(а) Mayk - 7.9.2005, 17:48


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1366 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.