» »

[C++]Nekaj vprašanj glede programiranja za konzolo

[C++]Nekaj vprašanj glede programiranja za konzolo

zhigatsey ::

Živjo,

Narediti hočem konzolni program, ki bo uporabljal samo standardno knjižnjico.
Program mora biti 100% prenosljiv. To je moja prva zahteva.
Pa sem mi je takoj na začetku ustavilo.

1. Recimo obstaja kakšna možnost da bi lahko počistil ekran. (clrscr). (system('cls') odpade)
2. Da bi recimo lahko izpisal v konzolo tekst, ki bi ga lahko uporabnik urejal.. Primer: Če bi recimo vnašal
Osebe v imenik, te vpraša za ime in priimek in tako dalje... Shraniš potem pa bi hotel pri neki osebi popraviti
Priimek, ker si se v eni črki zmotil. Je kakšna možnost da bi priimek izpisal v konzolo, kjer bi uporabnik pobrisal samo
eno črko jo zamenjal z drugo pritisnil enter in stvar bi se shranila. Če sedaj z cout kaj izpišem na konzolo se to ne more
več editirati.. Če je kakšna druga metoda za takšno obnašanje..
3. Če obstaja kakšen način za pozicioniranje teksta (v pascalo gotoxy)
5. Imel bi recimo nekje shranjene osebe in bi jih hotel izpisati po stolpcih (ime, priimek, naslov...), V stolpcih bi mi jih že uspelo poravnati
in nastaviti poravnavo, samo kako je s tem če bi imel 1000 oseb bi se to v konzolo izpisalo, ne vem koliko ma konzola sicer bufferja samo
zgornje vrstice bi sigurno izgubil. Če bi se dalo na nek način tako narediti, da bi izpisalo samo nevem 15 zapisov spodaj pa bi lahk vnesel
recimo P za prejšnjih 15 zapisov in recimo N za naslednjih 15 zapisov...
6." Kako bi naredil tisto vrtečo se palčko", kot pri FreeBsd-ju, ko se hitro na enem mestu ponavljajo znaki (|\/-\/|) nisem sicer prepričan če sem
napisal pravilno zaporedje... seveda z standardno knjiznjico...

To bi bilo pa zenkrat vse:), aja pa še to, če kdo ve kje bi lahko našel obširen help standardne knjiznjice za cpp, ki bi obsegala standardno knjižnjico
in pa še Stl. Samo bolj problem je dobiti help za standardno kjniznjico za vse cin cout printf itd..

Za odgovore se vam najlepše zahvaljujem

Matako ::

Mislim, da večino tega kar rabiš ima dobri stari CURSES . Prenosljivo na vsem kar se konča na X pa še na čem ;) Obstaja pa tudi GNU varianta ncurses, kao "new curses".

zhigatsey ::

Ja vem ampakjaz bi rad naredil brez drugih knjiznjic, poleg tega
pa rabim tudi na windows mašini da deluje program... Torej če
se kakšna stvar od spodaj naštetih da narediti brez drugih knjiznjic bi bil zelo vesel.

Matako ::

Problem je v tem, da je najmanjši skupni imenovalec terminalskega (TTY) izpisa res samo izpis alfanum znakov plus CR/LF (nova vrstica). Vse ostalo, vključno razno ASCII formatiranje na temo FF, TAB, DEL in podobno ni nujno povsod podprto, zato jih standardne knjižnice za izpis *ne* podpirajo. Pomisli samo na problem brisanja - saj niti ne moreš vedeti koliko vrstic ima tvoja (pseudo) TTY naprava oz. kaj če je preusmerjena na, ok ekstremno, linijski printer? No, v resnici večina terminalov (danes so to CLI okna) podpira vse žive nadzore kurzorja in barvne izpise - ponavadi še s pomočjo ASCII ubežnih sekvenc iz starih časov, lahko bi jih izpisoval na roko, samo zakaj le, če imaš za to knjižnice, ki to počnejo namesto tebe in se dajo prekonfigurirati za različne "terminale" - prenosljivost je tako sigurno večja! Seveda je tukaj na PCjih še možnost nadzora tekstnega načina direktno oz. preko BIOS klicov, kar je super hitro, ni pa nič prenosljivo ("gotoxy" v Borlandovih pascalih spada v to skupino). Na splošno je Windows konzola problematična, ker v resnici ni to terminal (v smislu PTY naprave, kot imaš v linuxih) ampak kar nekaj. Bojim se celo, da je ravno t.i. Windows Command Shell tisti primer "terminala", ki ne podpira skoraj nobenih posebnih fint, se pravi si res na tistem najmanjšem imenovalcu. Brisanje in vse ostalo se ponavadi dela na predpostavki, da je to emulirano PC-DOS okolje in se potem zganja tisti direktni nadzor tekstovnega načina, ki pa kot rečeno NI prenosljiv!

Zgodovina sprememb…

  • spremenil: Matako ()

zhigatsey ::

Ma ja sej to mi je tudi čisto jasno, samo katero knjiznjica omogoca kaj takega...
da bi bila prenosljiva (windows, linux) mogoče še kaj drugega... Zaenkrat sem
našel samo pdcurses, vendar se mi zdi bolj tako tako... No ja bom videl...
Če imaš še kakšen predlog bi biv zelo vesel... Pa če maš kakšen komentar na
pdcurses knjiznjico...

HVala za odgovore


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Unicode 8.0.0 prinaša več kot sedem tisoč novih znakov

Oddelek: Novice / Ostala programska oprema
3835454 (29933) johnnyyy
»

kje zaceti z c++ ?

Oddelek: Programiranje
323858 (2166) Monster
»

Resnična Resničnost: Linux (strani: 1 2 3 )

Oddelek: Novice / RTV Slo
11913932 (8702) smihael
»

Totalen začetnik

Oddelek: Programiranje
373204 (2427) root987
»

[c++] Kako ugotoviti katera tipka je bila pritisnjena

Oddelek: Programiranje
141481 (1253) 64202

Več podobnih tem