LINUX.ORG.RU

как красивей стереть текстовую строку ?


0

0

\n перейти на новую строку
\r перейти в начало строки

нет ли чего нибудь чтобы перейти в начало строки одновременно стерев ее ?

можно конечно вычислять длину строки, переходить в ее начало, затирать ее пробелами, переходить в начало и что-то писать, но может есть способ красивей это сделать ?


ну, что-то вроде

printf("%s", string);
len = strlen(string);
while (len--)
printf("\b \b");

хотя решение конечно топорное и лучше воспользоваться curses

beastie ★★★★★
()
Ответ на: комментарий от beastie

да можно конечно сделать обертку над printf которая будет отслеживать сколько символов выведено чтобы знать сколько символов затереть, но не хочется городить все это, вдруг есть проще решение ?

xtron
() автор топика
Ответ на: комментарий от sig_wall

а если терминал не ansi? чепятаем мусор? уж лучше обёртка над printf.

beastie ★★★★★
()
Ответ на: комментарий от beastie

а вообще-то, зачем извращатся и городить непортабельные решения, если всё уже придумано до нас? советую ещё раз взглянуть на curses:

#include <curses.h>

printw("\r%s", string);
clrtoeol();

где-то так

beastie ★★★★★
()
Ответ на: комментарий от xtron

>да можно конечно сделать обертку над printf которая будет отслеживать сколько символов выведено чтобы знать сколько символов затереть, но не хочется городить все это, вдруг есть проще решение ?

man 3 printf:

Upon successful return, these functions return the number of characters printed (not including the trailing '\0' used to end output to strings)

dmitry_vk ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.