• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ Alternatywy dla system("CLS")

Object Storage Arubacloud
+1 głos
623 wizyt
pytanie zadane 5 kwietnia 2021 w C i C++ przez niezalogowany
Witam. Piszę kod opierający się na pętli wykonywanej w nieskończoność. Mam jednak problem z usuwanie poprzednich wartości (tego co pętla wykonuje). Zdaję sobie sprawę, że mogę wykorzystać funkcję system("CLS"), jednak chciałbym użyć czegoś innego. Czy są jakieś inne sposoby na wyczyszczenie ekranu. Prosiłbym(jeśli to możliwe) o pełne wytłumaczenie lub przykład jak dodać ową funkcję do kodu. Z góry dziękuję za odpowiedź.

2 odpowiedzi

0 głosów
odpowiedź 5 kwietnia 2021 przez VBService Ekspert (253,120 p.)
wybrane 6 kwietnia 2021
 
Najlepsza

Clear the screen

 

Mi osobiście "przypadła do gustu":  <curses.h>   np.:  smiley

online

#include <curses.h>

int main()
{
  char users_name[100];

  // Remember, when using Curses, no change will appear
  // on the screen until refresh() is called
  initscr();
  (void)echo();

  addstr(" What is your name: ");
  refresh();
  getnstr(users_name, sizeof(users_name) - 1);

  clear(); // system("cls");

  printw(" Greetings and salutations %s!\n", users_name);
  refresh();

  printw("\n Press ENTER to quit.");
  refresh();
  getnstr(users_name, sizeof(users_name) - 1);

  endwin();
  return 0;
}

 

online

#include <iostream>
//#include <windows.h>
#include <curses.h>
#include <thread>
#include <chrono>
  
using namespace std;
 
int main()
{
    int hrs=0, min=0, sec=0;
    initscr();
     
    while (true) {
        //system("cls");
        clear();
     
        sec++;
 
        if (sec == 60) {
            sec = 0;
            min++;
 
            if (min == 60)
            {
                min = 0;
                hrs++;
 
                if (hrs == 24) hrs = 0;
            }
        }
     
        printw("%02d:%02d:%02d", hrs, min, sec);
        refresh();
     
        //sleep(1);
        this_thread::sleep_for (chrono::seconds(1));
         
        if (hrs == 1) break; // po 1h koniec ;-)
    }
     
    endwin();
    return 0;
}

 

0 głosów
odpowiedź 5 kwietnia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
Możesz używać znaku \r, jednak nigdy nie masz pewności, czy terminal na którym ktoś odpala Twój program na pewno go obsługuje. Jeśli chodzi o windowsa, to najlepiej i najwydajniej będzie skorzystać z buforów konsoli (tworzysz nowy bufor, wpisujesz do niego znaki jak do tablicy, wyświetlasz. Usuwanie jakiegoś tekstu to po prostu zastąpienie znakow w buforze jakimś 0/spacją. Jeśli chodzi o linuxa - nie wiem, pewnie jakaś magiczna libka lub też buforki.
komentarz 6 kwietnia 2021 przez VBService Ekspert (253,120 p.)

Podobne pytania

0 głosów
2 odpowiedzi 877 wizyt
pytanie zadane 13 stycznia 2016 w C i C++ przez sqbi Początkujący (470 p.)
+1 głos
3 odpowiedzi 605 wizyt
pytanie zadane 17 lutego 2021 w C i C++ przez Drożdżówka Obywatel (1,870 p.)
0 głosów
2 odpowiedzi 556 wizyt
pytanie zadane 21 maja 2020 w C i C++ przez Atman Użytkownik (810 p.)

92,555 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...