C++标准输出格式

Top*_*opo 0 c++ format cout

我想创建一个C++控制台应用程序,将一些文本打印到控制台的不同部分.例如,在QBasic中,您可以使用:

locate(8,5)
print "hi"
Run Code Online (Sandbox Code Playgroud)

hi将打印在第8行第5行.在C++中,当我使用cout时,它总是在下一行打印,并开始在第一列中打印.有什么方法可以做到这一点吗?

pax*_*blo 6

C++ 本身没有这个功能,它的I/O模型是一个相当简单的顺序模型.

如果你想进行花哨的光标定位,你需要输出(例如)终端将识别为特殊命令(例如ANSI或VT转义序列)的控制字符,或者使用像curses这样的库(参见这里的ncurses)它可以为你做很多繁重的工作,不仅仅是光标定位,还有文本模式窗口等等.

  • 不,你可以使用没有额外库的颜色!使用[ANSI转义码](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors).这正是控制台中的颜色的工作原理. (2认同)