Turbo C 函数 `clrscr` 和 `cprintf` 的 GNU/Linux 替代品
我刚搬到 Linux 才一个月。我使用 Borland Turbo C 进行 C 编程,但其中一些功能在 GNU/Linux 中不起作用,因此寻求帮助。
这些是我想要替换的一些功能:
- 戈托西
- cprintf
- clrscr
- initgraph/graphics.h
我希望有一些代码示例展示如何使用任何替换。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在 Linux 中,您可以使用 ncurses 库将终端用作文本缓冲区:移动光标,然后写入文本。它还可以绘制窗口和其他高级小部件。
对于
gotoxy
,请参阅 ncurses 中的move
和wmove
(链接)。对于
cprintf
,请参阅printw
。您只需使用
clear()
即可清除屏幕。在 ncurses 中,您还需要在
printw
和clear()
之后使用refresh()
刷新屏幕。示例程序,使用 ncurses 中提到的所有函数:
在 gcc 中编译:
gcc program.c -lcurses
至于图形,您必须选择一个特定的库。
如果您需要与低级 Graphics.h 类似的体验,您可能正在寻找 directfb 或 svgalib。
如果您想在窗口中渲染图形,SDL 将很有帮助。
In linux, you can use the ncurses library to use the terminal as a text buffer: move the cursor around, and write text. It can also draw windows and other hi-level widgets.
For
gotoxy
seemove
andwmove
from ncurses (link).For
cprintf
seeprintw
.You can clear the screen simply with
clear()
.In ncurses you also need to refresh the screen with
refresh()
afterprintw
andclear()
.Example program, which uses all the mentioned functions in ncurses:
Compile in gcc with:
gcc program.c -lcurses
As for graphics, you have to choose a particular library.
If you need a similar experience as the low-level graphics.h, you are probably looking for directfb or svgalib.
If you want to render graphics in a window, SDL will be helpful.
您引用的函数是 Borland 控制台应用程序专有库的一部分。您想了解ncurses。
The functions you refer to are part of Borland's proprietary library for console applications. You want to read about ncurses.
关于graphics.h
关于在Linux 中使用graphics.h 是一项简单的任务。一周前我也遇到了同样的问题。那么你可以用搜索词“graphics.h in Linux”进行搜索,你会得到很多链接,这里是一个。
http://www.rajivnair.in/2007/07/graphicsh- in-gnulinux.html。
关于清屏
为此,您有很多选择。
其一是,
使用 system("clear") 但它需要 stdlib.h 并且性能较慢。
这里有两个链接...
如何使用 C++ 清除 Windows 和 Linux 中的控制台
cprogramming.com
关于 Gotoxy
正如 Michał Trybus 的回答中提到的。
关于cprintf
我引用了很多链接,但没有得到简单的答案。我也在等待这个问题的答案。
但是,根据我的经验,每当我希望输出采用某种彩色格式时,我都会使用graphics.h,尽管这不是必需的。这就是为什么我以前从未想过这个问题。
您可能会发现此链接很有用...
codeguru.com
关于 getch
我想你可能已经知道这一点了。您可以在 stdio.h 中使用 getchar(),而不是 conio.h 中的 getch()(不在 ansi 标准中)。
About graphics.h
Regarding using graphics.h in Linux is an easy task. I had the same problem a week ago. Well you can goggle with search term "graphics.h in Linux", and you will get many links and here is one.
http://www.rajivnair.in/2007/07/graphicsh-in-gnulinux.html.
About Clear Screen
For that, you have many options.
And the one is,
using system("clear") but it needs stdlib.h and it is slower in performance.
Here two links for you...
How do I clear the console in BOTH Windows and Linux using C++
cprogramming.com
About gotoxy
As mentioned in Michał Trybus's Answer.
About cprintf
I Referred many links, but not getting the simple answers. Me too waiting for the answers for this.
But,In my experience whenever I want the output to be in some colored format , I will use graphics.h, though it is not required.That's why I doesn't had this question in my mind ever before.
You may find this link useful...
codeguru.com
About getch
I think you may already know about this. Instead of getch() in conio.h(not in ansi standard), you can use getchar() in stdio.h.
只是,我在另一个帖子中回答了同样的问题:
简单的方法!
Just, I was answering the same questions in another thread:
Easy way to do it!