MyOD

MyOD

od -tx -tc 功能

1296447-20180923215856932-1313061606.jpg

实现效果

1296447-20180924111237747-704934411.jpg

myod.c 代码(可将tx,tc函数单独贴在另外两个.c文件中)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ncurses.h>

void tc(FILE *file);
void tx(FILE *file);

int main(int argc,char *argv[]){
    initscr();
    FILE *file=fopen("./main.c","r");
    tx(file);
    rewind(file);
    tc(file);
    refresh();
    getch();
    endwin();
    return 0;
}

void tc(FILE *file)
{
    move(1,0);
    refresh();
    char ch[18];
    int i=0,j=0;
    while(fgets(ch,17,file)!=NULL){
    printw("       ");
    j++;
    for(i=0;i<16;i++){
        if(ch[i]=='\n'){   
            i++;
            printw(" ");
            printw("\\n");
        }
        if(ch[i]=='\t'){
            if(ch[i+1]!='\t'){
                i++;
            }
            printw(" ");
            printw("\\t ");
        }
        if(ch[i]=='\0')
            break;
        if(ch[i]!='\t'){
            printw("  %c ", ch[i]);
        }
    }
    move(1+j*2,0);
    }
}

void tx(FILE *file)
{
    //Initialize the coordinates
    //Set the position
    move(0,0);
    refresh();
    char ch[18];
    int i,j=1;
    while(fgets(ch,17,file)!=NULL){
        printw("%07o",16*(j-1));
        for(i=0;i<16;i++){
            if(i%4==0){
                printw("       ");
            }
            if(ch[i]=='\n'){
                i++;
                    printw("%02x",'\n');
            }
            if(ch[i]=='\0')
                break;
            printw("%02x",ch[i]);
            if(i%4==3){
                printw(" ");
            }
        }
        move(j*2,0);
        j++;
     }
     printw("%07o",16*(j-1)+i);
}

转载于:https://www.cnblogs.com/treebeard123/p/9693899.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值