NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Presun kurzoru

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
expoox
Tvůrce
Avatar
expoox:25.10.2017 12:03

Ahoj, viete mi prosím poradiť ako presuniem pri výpise do stdout kurzor o jedno miesto naspäť ale tak aby som tam vedel vložiť znak(y), nie prepísať posledný
Príklad..

Printf("a\xb")

Hľadám také \x aby výsledok toho printfu bol ba
Existuje na to nejaký pomerne jednoduchý spôsob?
Ďakujem

Edit: viem ze si to môžem ukladať do poľa a vypísať to odzadu, mňa len zaujíma takýto spôsob

Editováno 25.10.2017 12:06
 
Odpovědět
25.10.2017 12:03
Avatar
David Novák
Tvůrce
Avatar
David Novák:25.10.2017 12:24

Tohoto bys dosáhl použitím fseek (to posouvá kurzor).. Jde to ale jen na tzv. "seekable" streamech (v zásadě soubory). Tj. pokud spustíš program takto:

./program > file

Tak můžeš posouvat kurzor ve stdout. Pokud ho spustíš běžným způsobem, tak ne (jak bys chtěl editovat text, co už byl odeslán do terminálu?).

Obecně je to VELMI špatný postup. Jakékoliv přehazování, přepisování.. prostě editaci výstupního textu je třeba dělat než ho vypíšeš.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
25.10.2017 12:24
Chyba je mezi klávesnicí a židlí.
Avatar
expoox
Tvůrce
Avatar
Odpovídá na David Novák
expoox:25.10.2017 14:17

Tak ono \r je tiež svojim spôsobom editácia toho co už bolo vypísané ale ok, chápem, dik

 
Nahoru Odpovědět
25.10.2017 14:17
Avatar
Odpovídá na expoox
Erik Šťastný:25.10.2017 16:41

Pokud ti jde o pohyb v konzolovém okně můžeš zkusit něco z tohodle:

https://stackoverflow.com/…ext-position

Vím, že kdysi jsem to v C dělal a stačila jedna metoda z nějakého headeru.

 
Nahoru Odpovědět
25.10.2017 16:41
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na expoox
David Novák:25.10.2017 17:23

Tím \r myslíš znak CR? To můžeš teoreticky použít pro ovládání terminálu (nemám ale tušení jak to má který terminál implementované) - resp. spoustu věcí v terminálu můžeš ovládat jistými znaky na výstupu (takto se dříve skutečné terminály používaly)..

Není to ovšem nic obecného ani standardního a jak zmiňuje Elisse, tak je to třeba řešit knihovnami pro danou platformu..

Nahoru Odpovědět
25.10.2017 17:23
Chyba je mezi klávesnicí a židlí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.