Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2011, 09:39   #1
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию Редактирование строк в консоли.

Итак, есть такая ситуация. В консоли написаны две строки друг над другом. То есть,
Строка1
Строка2
Нужно удалить 2 строку и вместо неё написать другую. Как это сделать? system("cls") не предлагать, он очищает всю консоль.
Диман56 вне форума Ответить с цитированием
Старый 04.11.2011, 09:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

С помошью SetConsoleCursorPosition стать на первый символ строки и начать писать- она затрется.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2011, 09:45   #3
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Спасибо)) Буду гуглить)

Блин, что-то простых примеров мало в гугле. Всё как-то сложновато))

А по-другому никак?) Просто вроде разобрался, но координаты в консоли смущают. Как определить координату предыдущей строки?

Всё! Нашёл. Вот такой вариант гораздо проще и работает! cout<< "Hello\r";
cout <<"Y";

Последний раз редактировалось Stilet; 04.11.2011 в 11:11.
Диман56 вне форума Ответить с цитированием
Старый 04.11.2011, 16:16   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Вот, нашел среди своих старых файлов.
cursor.h


Код:
#ifndef CURSOR_H
#define	CURSOR_H

    #define CLEAR               printf("\033[2J\033[1;1H")

    // Положение курсора
    #define HOME                printf("\033[1;1H")
    #define STORE_CURSOR        printf("\033[s")
    #define RESET_CURSOR        printf("\033[u")
    #define CLEAR_EOL           printf("\033[K")
    #define CURSOR(row, column) printf("\033[%02d;%02dH", row, column)

    // Выбор цвета
    #define RESET_COLOR printf("\033[0m")

    #define BLACK       0
    #define RED         1
    #define GREEN       2
    #define YELLOW      3
    #define BLUE        4
    #define MAGENTA     5
    #define CYAN        6
    #define WHITE       7
    #define UNDEF       -1

    // Выбор оформления
    #define NONE        0
    #define BOLD        1
    #define DIM         2
    #define UNDERLINE   4
    #define BLINK       5
    #define REVERSE     7

    #define COLOR(bgcolor, fgcolor)         printf("\033[%02d;%02dm", (bgcolor + 30), (fgcolor + 40))
    #define COLOR_A(bgcolor, fgcolor, attr) printf("\033[%02d;%02d;%1dm", (bgcolor + 30), (fgcolor + 40), attr)
#endif	/* CURSOR_H */
Добавляешь в код программы заголовок, перед печатью вызываешь соответствующий макрос.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать автозаполнение строк, которые зависят от строк другого столбца путвфда_иил Microsoft Office Excel 19 29.08.2010 17:16
Редактирование многих строк Krasi PHP 22 30.07.2010 18:09
окно консоли alex_alpha Общие вопросы C/C++ 2 06.04.2010 22:21
Добавление строк в таблицу с вставкой в них текста и чередованием фона строк Centurion2xx6 Microsoft Office Word 9 30.03.2010 11:00
Excel max 256 строк VS user надо 300 строк Exo Microsoft Office Excel 3 10.01.2008 17:14