【发布时间】:2012-12-07 20:03:48
【问题描述】:
我想读取一个文本文件并显示它。但我需要在终端上打印它,类似于手册页(linux)。也就是说,向上滚动时不应超出第一行,向下滚动不应超出最后一行。我只能用 C 语言编写它。我不应该使用任何工具。我目前单独清除终端的编码是,
#include<stdio.h>
main()
{
printf("\033[2J");
printf("\033[0;0f");
FILE *ffp;
char c;
ffp=fopen("help.txt","r");
while((c=getc(ffp))!=EOF)
printf("%c",c);
}
请指导我。提前致谢。
更新:
main()
{
FILE *ffp;
char c;
ffp=fopen("help.txt","r");
FILE *less = popen("less", "w");
while ((c = getc(ffp)) != EOF) {
fputc(c, less);
}
}
【问题讨论】:
-
只有我在想
ncurses吗? -
不,你并不孤单!
-
@maverik 是的。但它是一个预定义的工具。我需要对其进行编程,因为我使用 C 代码清除了终端。
-
这是作业吗?在现实生活中,您会使用
less(或PAGER环境变量中设置的任何内容)。这里从来不需要 C(这违背了 UNIX 精神)使用 C 来完成这项任务。 -
@AlexandreC。是的。这是我项目的一部分。我会尝试 PAGER 环境变量。谢谢。