返回顶部

收藏

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. 2012-11-21 03:05:32oracle数据库连接及基本操作封装 by zoufei
  2. 2013-12-28 18:47:44完美操作中文字符 by 好好学习啊
  3. 2013-12-29 16:27:08使用WinpCap获取网卡每秒的数据包数和传输速度 by 自由魂
  4. 2013-12-30 15:38:54简单socket by DuLinRain
  5. 2014-10-05 14:26:14任务3_igkezman by xwz
  6. 2015-02-13 17:53:05WebServer by 自由魂
  7. 2012-11-21 12:27:57c++实现归并排序算法 by Loli控
  8. 2013-12-28 19:02:08模拟内存溢出 by 林峰
  9. 2013-12-29 17:24:26Miller-Rabin算法(验证素数) by lihuibng
  10. 2013-12-30 16:29:17检测字符串是不是合法的ip by dreamit
  11. 2017-01-06 09:31:38Boolean operation in if by xwz
相关聚客文章
  1. Armin Ronacher 发表 2013-02-13 00:00:00 Start Writing More Classes
  2. Conda 发表 2014-03-30 03:40:25 CPP PreMETAL:一个用于METAL的预处理小程序
  3. 博主 发表 2010-08-21 04:00:00 More than books
  4. ceeji 发表 2013-04-10 10:58:35 模板类 Stack C++ 实现(线性存储版)
  5. Bruce 发表 2014-01-01 11:35:48 Linux C++开发入门
  6. 李瑾 发表 2014-12-10 23:27:10 Memory 1
  7. 博主 发表 2015-08-25 11:44:38 浅析二级指针、二维数组及其他
  8. Node.js Foundation 发表 2015-10-30 12:00:00 What You Should Know about Node.js v5 and More
  9. OWenT 发表 2016-02-26 14:18:18 今天抽空整理了下GCC和LLVM+Clang+libc++abi的编译脚本和libatbus的CI
  10. trend setter 发表 2016-06-09 03:52:34 Well, Daniel Radcliffe More Masculine
  11. 博主 发表 2016-11-26 08:04:31 C++ 惯用法 CRTP 简介
  12. admin 发表 2017-01-10 14:25:57 J.J. Abrams to move away from reboots: 'I'm more e

发表评论