The 2015 documentation does not say that there is a restriction (earlir versions required the paid version).
With Visual Studio, you can use the debugger to attach to a running process, which would avoid the problem — provided that your program can initialize and wait for you to do this.
As for why it is different, that is probably because the debugger is intercepting the input/output of the program running in the console window (and preventing it from changing the I/O modes).
Further reading:
From followup comments, @Sean-Gugler realized that
- the executable's ANSI codes were not interpreted when it is run natively (e.g., opening from the File Explorer),
- but worked when run normally from Visual Studio.
On being reminded that Windows 10 console window interprets ANSI escape sequences,
- he verified that the executable ran as expected in a console window, and
- surmised that Visual Studio was running the executable directly (without a console window) when debugging (F5), but did run it in a console window when running the executable normally (ctrlF5).
One of the problems in starting a console application from a GUI (such as Visual Studio) is that the application would have to do some extra work to allocate a console.
Further reading: