0

テキストファイルを読み込んで表示したい。しかし、man ページ (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);
}
}
4

2 に答える 2

1
FILE *less = popen("less", "w");
while ((c = getc(ffp)) != EOF) {
  fputc(c, less);
}

morelessファイルのスクロールを実装したり、一度に画面全体をパイプしたりするプログラムです。

于 2012-12-20T10:25:10.170 に答える
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;
}

SOURCE: 端末プログラム Linux C/C++ の出力をクリアする

于 2012-12-20T10:20:42.237 に答える