我想阅读一个文本文件并显示它。但我需要在终端上打印它,类似于手册页(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);
}
}
答案 0 :(得分:1)
尝试这样的事情,
#include <stdio.h>
int
main ()
{
fputs("output1\n",stdout);
fputs("output2\n",stdout);
fputs("\033[A\033[2K\033[A\033[2K",stdout);
rewind(stdout);
ftruncate(1,0); /* you probably want this as well */
fputs("output3\n",stdout);
fputs("output4\n",stdout);
return 0;
}
答案 1 :(得分:1)
FILE *less = popen("less", "w");
while ((c = getc(ffp)) != EOF) {
fputc(c, less);
}
more
和less
是实现滚动浏览文件或管道一次屏幕的程序。