返回顶部

收藏

linux 下 more 命令 的c++实现

更多

linux 下 more 命令 的c++实现

#include <stdio.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);
    return 0;

}
void do_more(FILE *fp)
{
    char line[LINELEN];
    int num_of_lines  = 0;
    int see_more(),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;
}

标签:cpp,more

收藏

0人收藏

支持

1

反对

0

»更多 您可能感兴趣的代码
  1. 2013-12-28 17:35:11自删除(C++)代码 by Eric_Lee
  2. 2013-12-29 14:45:32VC获取Access数据库密码 by Ev4n
  3. 2013-12-30 14:39:08libssh2 进行 SFTP 文件传输 by 林峰
  4. 2014-01-13 10:19:55php switch case 的例子 by qqmmcc
  5. 2015-01-30 09:17:07数据结构的主要程序。 by 猩猩总统
  6. 2013-12-28 18:04:12快速排序c++实现 by starstroll
  7. 2013-12-29 15:44:40随机仿真法计算圆周率(computePI) by 傅小黑
  8. 2013-12-30 15:03:54使用 libssh2 连接到远程服务器 by zetaliang
  9. 2014-09-18 17:49:48主函数 by vzex
  10. 2015-02-12 09:10:04[CISP430] pqueue.cpp by ljl
  11. 2017-12-11 17:37:06表变量,代替临时表 by xuleaper

发表评论