在unix上如何将控制台光标移动到(x,y)? 我在Windows上使用了 和 ,但是在UNIX上,我只能找到代码> > /Cuff>,它使用了大量的C,不支持很多C++函数。如何将控制台光标移动到(x,y),同时还能进行面向对象编程 强>编辑:我试图用控制台作为显示,在C++中做简单的游戏。我知道这样做并不理想,但这是一个不能使用VisualC++或其他任何图形的项目。想想像蛇或扫雷舰之类的东西。我需要能够在不同的位置cout,而无需在此过程中更新整个屏幕。它需要与unix系统兼容。

在unix上如何将控制台光标移动到(x,y)? 我在Windows上使用了 和 ,但是在UNIX上,我只能找到代码> > /Cuff>,它使用了大量的C,不支持很多C++函数。如何将控制台光标移动到(x,y),同时还能进行面向对象编程 强>编辑:我试图用控制台作为显示,在C++中做简单的游戏。我知道这样做并不理想,但这是一个不能使用VisualC++或其他任何图形的项目。想想像蛇或扫雷舰之类的东西。我需要能够在不同的位置cout,而无需在此过程中更新整个屏幕。它需要与unix系统兼容。,c++,unix,C++,Unix,一个非常简单的方法是: #包括 void moveCursor(std::ostream&os,int col,int row) { 操作系统,所以它的可读性不如curses,可移植性不如curses,而且与curses一样不面向对象。我不建议使用OP来处理这个问题。@hvd我同意。也许我也应该这样写。我不认为这对我有用。我需要它来处理cout、文件I/o以及多个类和实例。还有其他的吗way?@NickMundinger你到底是什么意思?你可以从任何地方调用此函数,也可以传入其他流。在文件中放置

一个非常简单的方法是:

#包括
void moveCursor(std::ostream&os,int col,int row)
{

操作系统,所以它的可读性不如curses,可移植性不如curses,而且与curses一样不面向对象。我不建议使用OP来处理这个问题。@hvd我同意。也许我也应该这样写。我不认为这对我有用。我需要它来处理cout、文件I/o以及多个类和实例。还有其他的吗way?@NickMundinger你到底是什么意思?你可以从任何地方调用此函数,也可以传入其他流。在文件中放置光标没有意义。“多个类和实例”是什么意思与功能有关?也许你应该澄清你的问题,你想完成什么。或者你想看看?
#include <iostream>

void moveCursor(std::ostream& os, int col, int row)
{
  os << "\033[" << col << ";" << row << "H";
}

int main()
{
  moveCursor(std::cout, 1,1);
  std::cout << "X (1,1)";
  moveCursor(std::cout, 13,8);
  std::cout << "X (13,8)" << std::endl;

  return 0;
}