Did you write this code yourself?
(Because if you did, you ought to know why you are getting it in reverse.)
Take a look a the variables "startChar" and "charPointer", lines 47, 67, 70 and 71. Do you see why it is going in reverse?
Also, there's an off-by-one error there. Line 67 assigns the "charPointer" an index that is one-past the last character in the string.
As a final matter of variable name choice, "charPointer" is a terrible name in C++, because it isn't a pointer, it is an index. Hence, a better name would be "charIndex". (An even better name would be something like "currentIndex"...)
Hints:
To create a scrolling marquee, you only need to set the cursor position once per delay. Set it to the beginning of the line.
Next, the thing that should change is the index of the first (or 'start') index into the string.
If you want the text to scroll left, increase the index each delay.
If you want the text to scroll right, decrease the index each delay.
Don't forget about what happens when the index hits either end of the string: if (index < 0) then you must set it to the index of the last character; if (index >= thString.length()) then you must set it to the index of the first character.
Likewise, don't forget that your loop into the string itself (line 68) should be:
1) controlled by the length of the string, not hard-coded
2) modulo the length of the string (use the remainder operator, %).