Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Работа с консолью


Автор: Ripper 9.4.2005, 17:31
Как изменить цет текста и очистить экран ? Наподобии textcolor(), CLS в паскале?

Автор: np9mi7 9.4.2005, 20:20
Среда разработки?

Автор: Ripper 9.4.2005, 20:43
VC++ 6.0

Автор: Fire-Plug 10.4.2005, 08:00
Пойди по след. ссылке (или поищи сам. Мой контекст поиска был: MS DOS commands color)
http://www.computerhope.com/color.htm#01
Имеется след. команда
Цитата
SYNTAX
Sets the default console foreground and background colors.

COLOR [attr]

attr        Specifies color attribute of console output

Color attributes are specified by TWO hex digits -- the first corresponds to the background; the second the foreground

Ну, а дальше дело техники:
Код

system("Color [B][F]");

где [B][F], place holders для шестнадцатиричного значения цвета фона и шрифта.
ЗЫ: Конечно, можно найти нужные ф-ции Win32 API. Мне лично в лом.
Добавлено @ 08:02
Цитата(Ripper @ 9.4.2005, 17:31)
CLS в паскале?

Команда MS DOS - cls тоже очищает окно ДОС-сессии.

Автор: np9mi7 10.4.2005, 09:00
Немного не понятно как ты работаешь с консолью, как на неё пишешь? Я задал тот же вопрос что и ты на RNDS.ru..... ТОлько у меня среда = dot net, а не 6.0.... Там в ней прям есть класс для работы с консолью, System::Console (http://msdn2.microsoft.com/library/h0wzwc06.aspx), вчера посидел, посмотрел на него а он мало что может. (по крайней мере цветом он уж точно не управляет). Было бы круто, если бы ты написал свою оберкту вокруг API для работы с консолью (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/console_functions.asp).


Ну а вопрос остается открытым: как работаешь с консолью? smile

Автор: Fire-Plug 10.4.2005, 09:06
Цитата(np9mi7 @ 10.4.2005, 09:00)
Было бы круто, если бы ты написал свою оберкту вокруг API для работы с консолью (MSDN).

Пусть сначала в мелко-софт возьмут.
ЗЫ: Ты, вообще, к Ripper-у обращаешься?

Автор: np9mi7 10.4.2005, 09:10
Цитата
Пусть сначала в мелко-софт возьмут.
ЗЫ: Ты, вообще, к Ripper-у обращаешься?
, вообще именно к нему (он же тему создал) smile

Автор: Ripper 10.4.2005, 19:45
system("COLOR fc") - работает, спасибо.

np9mi7 Всмысле как работаю? Я вообще только начал изучение си++ и VC тока недавно поставил%) Создаю empty colsole project да и пишу там %) Просто стало интересно %)

Автор: np9mi7 10.4.2005, 20:13
НУ пример кода? Как пишешь на консоль? (ты ссылки помеченные как MSDN смотрел?)

Автор: Fixin 10.4.2005, 20:24
API используешь? А то есть несколько функций по теме.

Автор: Ripper 10.4.2005, 20:40
Код

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

int main()
{
    system("COLOR fc");
    cout <<"hellow world!"<<endl;
    return 0;
}

усе работает

Автор: Fixin 10.4.2005, 20:45
Вот оно:
Код
void main()
{
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    ClrScr(hOut, 0, 0);
    GotoXY(hOut, 20, 12);
    Write(hOut, "Hey, people!");
}
void GotoXY(HANDLE hOut, int x, int y) // преход туда-то
{
    COORD c;
    c.X = x;
    c.Y = y;
    SetConsoleCursorPosition(hOut, c);
}
void BlankLine(HANDLE hOut, int y) // очистка строки
{
    DWORD NumWritten;
    COORD c;
    c.X = 0;
    c.Y = y;
    FillConsoleOutputCharacter(hOut, ' ', 80, c, &NumWritten);
}
void ClrScr(HANDLE hOut) // очистка фрейма
{
    for (int i = 0; i < 25; i++)
        BlankLine(i);
    GotoXY(hOut, 0, 0);
}
void Write(HANDLE hOut, LPSTR s) // написать
{
    DWORD NumWritten;
    WriteConsole(hOut, s, strlen(s), &NumWritten, NULL);
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)