我怎么能在gcc中实现gotoxy

我在Ubuntu中使用gcc ,所以我编译并在terminal中执行。 但在网上编程比赛中,他们需要输出如图所示。

为此,如果使用TURBOC,我可以使用conio.h使用gotoxy()来获得输出的螺旋格式但在Ubuntu,我怎么能做到这一点?

我应该如何在Windows中运行另一个程序?

在SQL Server或C#中encryption数据

为什么sizeof在C中为同一个string返回不同的值?

构buildPython C扩展

有什么方法可以将我的程序与Wine编译的部分联系起来吗?

是libodbc ++hibernate吗? 有没有明确的inheritance人?

长文件名称

MinGW找不到inttypes.h

Createprocess和0xc0000142错误

gdb问题设置硬件观察点/如何设置软件观察点

使用ncurses库。

这是一个例子,改编自http://www.paulgriffiths.net/program/c/srcs/curhellosrc.html

#include <stdlib.h> #include <stdio.h> #include <curses.h> int main(void) { WINDOW * mainwin; /* Initialize ncurses */ if ( (mainwin = initscr()) == NULL ) { fprintf(stderr,"Error initialising ncurses.n"); exit(EXIT_FAILURE); } move(10,15); addch('X'); refresh(); getch(); delwin(mainwin); endwin(); refresh(); return EXIT_SUCCESS; }

更多信息,请访问: http : //invisible-island.net/ncurses/ncurses-intro.html#stdscr

假设因为这是一个比赛,他们不需要像ncurses这样的依赖关系,你可以尝试在内存中执行它。

设置2维数组的char – 行和列 – 说24×80。 编写你自己的gotoxy()版本,它将值赋给正确的单元格。 完成绘图后,打印出行数组。

除了ANSI转义序列,您可能希望调查ncurses:

http://www.gnu.org/s/ncurses/

这一切都最终取决于终端运行程序的能力,而不是实际的主机,语言或库。 考虑将程序输出重定向到文件或打印机的情况。

conio.h API更像是一个固定的控制台,Unix就像你通常处理终端一样的系统,比如可调整大小的X-Terminals。

确定你需要多少行输出。 为每行所需的输出分配一个“char *”数组。 当你放置一个数字时,使用“realloc()”来增加行的大小,并用空格填充到新的一端(如果需要)。 然后把你的号码在该行的正确位置(在内存中)。

在内存中构建了一个字符串数组之后, 做一个循环打印每一行(并释放你分配的内存)。

你不需要“gotoxy()”或任何东西来控制光标位置。

由于它还没有在这里,我只想说一个使用ANSI转义序列的例子,就像Steve-o提到的那样。

void gotoxy(int x,int y) { printf("%c[%d;%df",0x1B,y,x); }

我从这里得到它

0x1B是十进制的十六进制数27,是ESC的ASCII码。 转义序列从它开始

%m;%nf将光标移动到第n行第m列。

ANSI转义序列用于“ 控制视频文本终端上的格式化,颜色和其他输出选项 ”

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...