[ kandelabr @ 09.01.2010. 13:23 ] @
| E ovako, trebao bih da ispisujem neke poruke i da mi se automatski pomera kursor na ekranu, pri cemu je y koordinata uvek na nuli, evo primer:
Code: for(int i=6; i<50; i+=6){
cout << "10\n"<<"a"<<endl;
curPos(i,0);
}
pri cemu sam ovu f-ju curPos iskopao ne netu i ona glasi
Code: void curPos(int x, int y) {
HANDLE hStdout;
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
hStdout=GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hStdout, &csbiInfo);
csbiInfo.dwCursorPosition.X=x;
csbiInfo.dwCursorPosition.Y=y;
SetConsoleCursorPosition(hStdout, csbiInfo.dwCursorPosition);
}
E sad izlaz ovakvog programa je nesto ovako:
Code:
10 10 10 10 10 10 10 10
a
a meni bi trebelo
Code:
10 10 10 10 10 10 10 10
a a a a a a a a
Problem je u tome sto svaki put kad se ispise kraj reda on sledeci red pocinje od pocetka i pri tome prepise staro a, a ja bih zeleo da i sledeci red pocinje od istog pomeraja na x-osi.
Ako neko ima resenje problema, ja se maximalno zahvaljujem. |
[ Mihajlo Cvetanović @ 11.01.2010. 09:35 ] @
Zeza te onaj \n u cout << "10\n". Da bi ti ovo radilo moraš da pozivaš curPos(0,x), ispišeš 10, zatim curPos(1,x), i ispišeš a. Praktično pravilo je ako sam kontrolišeš kurzor onda ne koristiš \n.
[ kandelabr @ 11.01.2010. 11:52 ] @
Znam, skapirao sam ja to ali je stvar sto je ovaj programcic samo mali primer mog problema.
Meni u stvari treba da se ispisuju slova kao na displejima npr.
___
|
---
|
---
s tim sto se ona mogu naci bilo gde na ekranu, pa mi treba da kad se ispise ova gornja linija, i kad se predje u novi red da se kursor automatski pozicionira ispod a ne da ode na pocetak reda.
A ja sam slova pamtio kao stringove, npr. za E " ___\n| \n --- \n| \n --- "
Problem je upravo ono sto si rekao, kad se uradi \n on odma ode na pocetak sl. reda, tako da tu nesto mora da se sredi.
Hvala u svakom slucaju!
[ Mihajlo Cvetanović @ 11.01.2010. 12:07 ] @
Moguće rešenje bi bilo da imaš funkciju koja prima početnu koordinatu, kao i string sa \n delimiterima, i onda deli taj string na podstringove bez \n, i svaki od delova ispisuje u novom redu, s tim što je X koordinata konstantna. Drugo rešenje je da u toj funkciji primaš niz stringova umesto jednog stringa, ali u suštini svodi se na isto.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.