As other people have said, you will need to re-print the same text in a different color to "change" the color.
However considering you are working with the Win32 console I think it would be more recommended to rely on platform dependant code -> Setting the Cursor Position in a Win32 Console Application
Moving the cursor around gives you more direct control of what you want to achieve (re-/over-writing already printed text in the console).
The other answer mentions printing '\r'
to the console which does work, but only for the current line where as moving the cursor around yourself gives you the freedom to "change" any character(s) in the entire buffer of the console.
On the other hand as you have already mentioned there is also system("cls")
which one might argue is a more "platform-independent" way of doing it, but its very slow (and kind of hackish) compared to a direct control so I would strongly recommend not to use it. (if you are wondering why, see system("pause"); - Why is it wrong?, granted its not the same command but the same principles apply)