Přepsání řádku (Console) (Rewrite) – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Přepsání řádku (Console) (Rewrite) – C / C++ – Fórum – Programujte.comPřepsání řádku (Console) (Rewrite) – C / C++ – Fórum – Programujte.com

 

XNickX
~ Anonymní uživatel
8 příspěvků
24. 6. 2011   #1
-
0
-

Ahoj....mam další problém...
začínám se učit C++....zvládám zatím jenom: Smyčky, podmínky, proměnné, třídy a objekty, syntax, atd...
Potřeboval bych zjistit jak můžu přepsat určitý řádek v konzoli.
Příklad: mám napsáno:

#include <iostream>

using namespace std;
int main()
{
cout<<"nejaky radek 1"<<endl;
cout<<"nejaky radek 2"<<endl;
cout<<"nejaky radek 3"<<endl;
cout<<"blablabalba";
return(0);
}


no a potřeboval bych nějaký příkaz, abych přepsal (za běhu - třeba nějakou funkcí) například "nejaky radek 2" (s použitím cout)..na "nejaky radek novy"....pokud mě chápete...
Děkuji za odpověď.

Nahlásit jako SPAM
IP: 217.115.249.–
KIIV
~ Moderátor
+43
God of flame
24. 6. 2011   #2
-
0
-

jen s cout to pujde tezko ale existujou takzvany escape sekvence... nicmene predpokladam, ze ve windows to nebude fungovat :) v linuxu se tim daj delat i barvy v terminalu, vetsinou i posouvat kurzor a tak dale

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
nervak0
Věrný člen
24. 6. 2011   #3
-
0
-

#include <windows.h>


void gotoxy(int x, int y)
{
COORD pos = { x, y };
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}

int getx()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
return csbi.dwCursorPosition.X;
}

int gety()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
return csbi.dwCursorPosition.Y;
}

Nahlásit jako SPAM
IP: 213.211.51.–
KIIV
~ Moderátor
+43
God of flame
24. 6. 2011   #4
-
0
-

a ano, kdyz se spokojis i s necim jinym nez jen s cout, tak lze pouzit konzolove funkce windows :)

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
XNickX
~ Anonymní uživatel
8 příspěvků
24. 6. 2011   #5
-
0
-

Nervak: Prosimtě nemohl by jsi mi napsat nějakou ukázku použití ? (Tak moc s C++ ještě neumím...)

Nahlásit jako SPAM
IP: 217.115.249.–
KIIV
~ Moderátor
+43
God of flame
24. 6. 2011   #6
-
0
-

To XNickX : ty nazvy funkci sou vesmes vsevysvetlujici:
gotoxy(0, gety()-1); // alias skocit na zacatek predchoziho radku (akorat to asi nebude uplne fungovat pokud budes na 1. radku)

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
XNickX
~ Anonymní uživatel
8 příspěvků
25. 6. 2011   #7
-
0
-

Díky moc.
Funguje to perfektně.

Nahlásit jako SPAM
IP: 217.115.249.–
mc
~ Anonymní uživatel
12 příspěvků
27. 6. 2011   #8
-
0
-

XNickX napsal:
abych přepsal (za běhu - třeba nějakou funkcí) například "nejaky radek 2" (s použitím cout)..na "nejaky radek novy"....pokud mě chápete...
Děkuji za odpověď.



cout (a vůbec práce se standardním vstupem a výstupem) nemůže podporovat posun o pár řádků výš. Pokud chceš něco takového provést, předpokládáš už ale něco o výstupním zařízení, na které zapisuješ.
Standardní výstup vůbec nemusí jít jen na obrazovku uživatele. Často bývá přesměrován, například do nějaké roury či soketu (http://cs.wikipedia.org/wiki/Roura_%28Unix%29, http://en.wikipedia.org/wiki/Berkeley_sockets), po kterých nemůžeš chtít "vrátit" data, která si do nich nasypal, tak postavená prostě nejsou.
Proto na to musejí sloužit nějaké spešl funkce, které si rozumí se zařízením, na které zapisuješ (s konzolí).

Vím, že ty víš, že budeš pouštět ten program s výstupem na konzoli, ale připadalo mi užitečné to sem napsat :smile1:

Nahlásit jako SPAM
IP: 213.211.34.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 26 hostů

Podobná vlákna

Rewrite přepsání url — založil Aricak

Console.WriteLine — založil funkce

Console v Eclipse — založil sikus

Console i Form — založil rybar73

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý