Применение ncurses в С++
Модератор: Модераторы разделов
Применение ncurses в С++
Огромная просьба поделиться ссылками на русскоязычную литературу по применению ncurses в С++ (желательно рассчитанную на новичков). Почему-то везде используются примеры с синтаксисом С.
10% — это 0,1.
© Bizdelnick
© Bizdelnick
Re: Применение ncurses в С++
Почему-то везде используются примеры с синтаксисом С.
Немудрено, если учесть, что ncurses написана именно на С.
Re: Применение ncurses в С++
Взаимодействие с ncurses можно организовать не только в C, но и во многих других языках (включая Python, Perl и C++)...
Источник
10% — это 0,1.
© Bizdelnick
© Bizdelnick
Re: Применение ncurses в С++
Re: Применение ncurses в С++
Что-то там всё слишком общо. Если Вам несложно, то объясните, пожалуйста, мне на пальцах: как с помощью ncurses в данной программе задать цвет фона - чёрный, цвет сообщений - светло-зелёный, цвет вводимых и выводимых значений - жёлтый?
10% — это 0,1.
© Bizdelnick
© Bizdelnick
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: Применение ncurses в С++
а у вас примеры не компилируются? Не работают?
C++ это надмножество C, т.ч. смело пишите на PureC, и собирайте gcc. Можно даже часть файлов писать на C++, а часть на C. Можно и одновременно (хотя это быдлокод).
что сразу с помощью ncurses?
ну сейчас попробую...
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: Применение ncurses в С++
а, понял. Вы хотите использовать STL std::cout, да? Дык это и невозможно, ncurses она работает со своими графическими функциями, и std:: вы можете разве что для файлов использовать, а не для вывода.
т.ч. определяйтесь. Примеры ncurses ищите здесь, я проверил, они работают.
т.ч. определяйтесь. Примеры ncurses ищите здесь, я проверил, они работают.
Re: Применение ncurses в С++
А каким ещё способом Вы предлагаете задавать цвет фона и текста в C++?
10% — это 0,1.
© Bizdelnick
© Bizdelnick
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: Применение ncurses в С++
ArkanJR
PS: такая ерунда везде работает, в шелле тоже
ЭТО НЕ C++.
Пишите грамотно, не вводите людей в заблуждение. Вы вместо того, что-бы сказать "я хочу ехать на велосипеде" сказали "я хочу бежать в резинке".
Код: Выделить всё
#include <iostream>
using namespace std;
int main()
{
cout << "\x1B[44mTEST\x1B[0m" << endl;
return 0;
}
PS: такая ерунда везде работает, в шелле тоже
ЭТО НЕ C++.
Пишите грамотно, не вводите людей в заблуждение. Вы вместо того, что-бы сказать "я хочу ехать на велосипеде" сказали "я хочу бежать в резинке".
Re: Применение ncurses в С++
Об этой строке можно поподробней? Просто откуда вопрос возник: заинтересовался темой цветов в С++, порыскал в литературе (Интернет-Университет Информационных Технологий "Введение в языки программирования С и С++"), но там был пример с использованием conio.h, который в gcc отсутствует. В Википедии в статье про conio.h имеется ссылка на Ncurses. Оттуда я и начал копать, как в задать цвета в консольной программе на С++ под linux...
10% — это 0,1.
© Bizdelnick
© Bizdelnick
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: Применение ncurses в С++
PS: C++ это развитие C, отличается от C
1. наличием ООП. Т.е. есть не только структуры, но и классы, которые позволяют создавать свои типы данных. Вы можете создать свой тип String, и писать такой код:
напечатает "zzz123". Наверное. А может и нет. От вас зависит.
2. наличием шаблонов. Т.е. можно сделать один шаблон, а потом подставлять в него любые типы(в т.ч. свои из п1). Компилятор сам создаст новый класс(функцию).
Вот благодаря исключительно п2 (НЕ п1!) сделали STL, с кучей шаблонов. В т.ч. и шаблон iostream, для ввода/вывода в файл-поток (stream). В glibc для этого есть fread/printf/fopen и т.п. Ну а шаблон cout -- просто обёртка с симпатичным синтаксисом. Никакого ООП там НЕТ. Т.е. это очень малая часть ЯП. Она даже в стандарт не так давно попала, а до того была как ncurses, просто одной из Over9000 библиотек.
1. наличием ООП. Т.е. есть не только структуры, но и классы, которые позволяют создавать свои типы данных. Вы можете создать свой тип String, и писать такой код:
Код: Выделить всё
String a = "zzz";
String b = "123";
String c;
c = a + b;
c.print();
напечатает "zzz123". Наверное. А может и нет. От вас зависит.
2. наличием шаблонов. Т.е. можно сделать один шаблон, а потом подставлять в него любые типы(в т.ч. свои из п1). Компилятор сам создаст новый класс(функцию).
Вот благодаря исключительно п2 (НЕ п1!) сделали STL, с кучей шаблонов. В т.ч. и шаблон iostream, для ввода/вывода в файл-поток (stream). В glibc для этого есть fread/printf/fopen и т.п. Ну а шаблон cout -- просто обёртка с симпатичным синтаксисом. Никакого ООП там НЕТ. Т.е. это очень малая часть ЯП. Она даже в стандарт не так давно попала, а до того была как ncurses, просто одной из Over9000 библиотек.
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: Применение ncurses в С++
http://en.wikipedia.org/wiki/ANSI_escape_code
цвета: http://en.wikipedia.org/wiki/ANSI_escape_code#Colors
используя возможности C++ вы можете сделать свою функцию <<. Вот так:
Код: Выделить всё
#include <iostream>
using namespace std;
enum colors { BBLUE=44, NORMAL=0 };
ostream& operator<<(ostream &os, colors c)
{
int i = c;
os << "\x1B[";
os << i;
os << "m";
return os;
}
int main()
{
cout << BBLUE << "TEST" << NORMAL << endl;
return 0;
}
Спасибо сказали:
Re: Применение ncurses в С++
Если ещё не сильно надоел, то подскажите пожалуйста, как задать цвет текста для вводимых данных?
10% — это 0,1.
© Bizdelnick
© Bizdelnick
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: Применение ncurses в С++
а вы определились? Если вы хотите делать через ESC коды(0x1B), то просто выведите нужный цвет.
в консоли:
$
echo -ne "\x1B[43m"; read; echo -e "\x1B[0m"