I'm trying to draw character based progress bar however, when it is the same width as the console and prints the last character it automaticaly moves to next row, if placed on the very bottom of the console it scrolls down so it's quite disturbing...How could I solve this?
You can't. That is a feature of your console - and every console is different on how it handles this. Some allow you to program it to behave differently, but the best thing to do is simply: don't do that. Keep your progress bar (and everything else) to one cell away from the edge of the screen.
If you are using windows, maybe there is a fast solution:
1 2 3 4 5
cout << "Line 1\n";
Sleep(500);
cout << "Line 2\r";
Sleep(500);
cout << "This text should overwrite Line 2...";
Maybe I've mistaken << for >>... and maybe it will not work. I just know, i used it with printf and it works. \r just puts the cursor at the first column of the same row, so if you already got down a row, you cannot fix it without using the WinAPI. If you want a fast way, You can check my Advanced Console Class here: http://cplusplus.com/forum/lounge/65208/
I think i will update it within minutes anyways, there were a couple of bugs i fixed since last upload.
That misses the point. If you write the last character on the last line of the display, most displays will automatically adjust everything one line up.
There is no consistent way to avoid that unless your program targets a specific display (like the Windows Console, or an xterm), so the trick is to never write anything there.