#include <stdio.h>
#include <stdlib.h>
#define PAGELEN 24
#define LINELEN 512
void do_more(FILE *);
int see_more();
int main(int ac, char *av[])
{
FILE *fp;
if (ac == 1)
do_more(stdin);
else
while (--ac)
if ( (fp = fopen(* ++av,"r"))!=NULL)
{
do_more(fp);
fclose(fp);
}
else
exit(1);
//system("PAUSE");
return 0;
}
void do_more(FILE * fp)
{
char line[LINELEN];
int num_of_lines = 0;
//int see_more(), reply;
int reply;
while ( fgets(line,LINELEN,fp) )
{
if(num_of_lines == PAGELEN)
{
reply = see_more();
if(reply == 0)
break;
num_of_lines -= reply;
}
if(fputs(line,stdout) ==EOF)
exit(1);
num_of_lines++;
}
}
int see_more ()
{
int c;
printf("/033[7m more? /033[m");
while ( (c = getchar()) !=EOF)
{
if(c == 'q')
return 0;
if(c == ' ')
return PAGELEN;
if(c == '/n')
return 1;
}
return 0;
}
#include <stdlib.h>
#define PAGELEN 24
#define LINELEN 512
void do_more(FILE *);
int see_more();
int main(int ac, char *av[])
{
FILE *fp;
if (ac == 1)
do_more(stdin);
else
while (--ac)
if ( (fp = fopen(* ++av,"r"))!=NULL)
{
do_more(fp);
fclose(fp);
}
else
exit(1);
//system("PAUSE");
return 0;
}
void do_more(FILE * fp)
{
char line[LINELEN];
int num_of_lines = 0;
//int see_more(), reply;
int reply;
while ( fgets(line,LINELEN,fp) )
{
if(num_of_lines == PAGELEN)
{
reply = see_more();
if(reply == 0)
break;
num_of_lines -= reply;
}
if(fputs(line,stdout) ==EOF)
exit(1);
num_of_lines++;
}
}
int see_more ()
{
int c;
printf("/033[7m more? /033[m");
while ( (c = getchar()) !=EOF)
{
if(c == 'q')
return 0;
if(c == ' ')
return PAGELEN;
if(c == '/n')
return 1;
}
return 0;
}

本文介绍了一个使用C语言编写的简单分页阅读程序。该程序可以读取标准输入或文件,并按指定行数分页显示内容。用户可以选择查看更多内容或者退出。程序通过命令行参数接受文件路径。
1万+

被折叠的 条评论
为什么被折叠?



