Wpis z mikrobloga

#naukaprogramowania #ansic #cpp #linux
mam program w C który wypisuje mi coś na terminal linuxa.
Chciałem żeby z każdym wywołaniem programu mi czyściło ekran.
Problem w tym, że:
printf("/033[2J"); (lub to samo z coutem)
czysci ekran, ale wszystko się wypisuje na dole ekranu, a ja chcę na górze. Jak to osiągnąć?
  • 10
  • Odpowiedz
@RedveKoronny: nie baw się w printfowanie ani tym bardziej w system(), tylko zamiast wykonywać program wykonuj skrypt shella który normalnie jak człowiek wyczyści ci terminal i odpali oryginalny program.
  • Odpowiedz
@RedveKoronny: Wywołujesz komendę, która może nie istnieć w systemie (na dobrą sprawę może być zaliasowana/zlinkowana tak że "clear" zrobi "rm -rf /"). Na szybko szukając, najczęstszy problem z takim wywołaniem to że dostaniesz błąd "TERM environment variable not set".

Nawet jeżeli zadziała na Twoim systemie, to może nie zadziałać u kolegi, a już na pewno nie zadziała np. pod Windowsem - to nie jest przenośne rozwiązanie.

C++ nie ma koncepcji terminala,
  • Odpowiedz