zoukankan      html  css  js  c++  java
  • MyOD

    任务详情

    1.复习c文件处理内容

    2.编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能

    3.main与其他分开,制作静态库和动态库

    4.编写Makefile

    5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息

    使用od -tx -tc test.txt输出结果

    • 由开始的截图我们可以知道,每行只输出16个字符,在这16个字符的下方打印相应的ASCII码,每行的开头对应该行字符个数的8位8进制数。
      另外,观察到全部输出完毕后总是会输出一个' '。

    静态库创建:

    动态库创建:

    程序运行结果:

    代码实现:

    main.c:

    #include <stdio.h>

    #include <stdlib.h>

    #include "head.h"

    #define N 1000

    #define M 17

    int main(char argv[])

    {

    FILE *fp;

    char args[N],name[N],ch;

    int i=0;

    printf("please input file name:");

    scanf("%s",name);

    //name=argv;

    if((fp=fopen(name,"r"))==NULL)

    {

    printf("ERROR!");

    exit(0);

    }

    while(fgets(args,17,fp))

    {

    tx(args,i++);

    tc(args);

    }

    fclose(fp);

    }

    tx.c

    void tx(char args[],int j)

    {

    int i;

    char output[N];

    printf("%07o",16*j);

    j++;

    for(i=0;args[i]!='';i++)

    {

    if(args[i]==' ')

    output[i]=' ';

    else

    output[i]=args[i];

    }

    for(i=0;args[i]!='';i=i+4)

    {

    printf(" %x%x%x%x",output[i+3],output[i+2],output[i+1],output[i]);

    }

    printf(" ");

    }

    tc.c

    #include<stdio.h>

    #include "head.h"

    void tc(char args[])

    {

    int i;

    printf(" ");

    for(i=0;args[i]!='';i++)

    {

    if(args[i]==' ')

    printf("\n");

    else

    printf("%4c",args[i]);

    }

    printf(" ");

    }

    head.h

    #ifndef _HEAD_20191306_H_

    #define _HEAD_20191306_H_

    void tc(char args[]);

    void tx(char args[],int j);

    #endif

    编程中遇到的问题和解决

    问题一:一开始并没有注意到输出全部字符后需要输出一个“ ”符号,到最后才想起来,但是要改代码又要全部都改很麻烦
    问题一解决:翻找课本后发现随机流是可以调用lenth()方法来直接获得一个文件里面的字符个数的,所以“投机取巧”,在开头建了个随机流来获得文件中的字符个数,最后和已经输出的字符个数做比较,相等时打印“ ”以及对应的两位16进制ASCII码。

  • 相关阅读:
    树-构建二叉树
    爬虫-scrapy框架详解(17)
    How to identify the HBA cards/ports and WWN in Linux
    NetBackup常用网络端口整理
    keepalived+MySQL实现高可用
    nginx配置https双向验证(ca机构证书+自签证书)
    systemd设置nginx开机自启动
    Keepalived+Nginx搭建主从高可用并带nginx检测
    windows 挂在EMC 存储
    linux时间同步,ntpd、ntpdate
  • 原文地址:https://www.cnblogs.com/1208499954qzone/p/15339258.html
Copyright © 2011-2022 走看看