# 2017-2018-1 20155224 《信息安全系系统设计基础》第四周MyOD

2017-2018-1 20155224 《信息安全系系统设计基础》第四周MyOD

在这里跟老师先道歉,当时我的git没有安装好,后面也一直没有装上,所以程序没有git。

要求

  1. 参考教材第十章内容

  2. 用Linux IO相关系统调用编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能,注意XXX是文件名,通过命令行传入,不要让用户输入文件名

  3. 不要把代码都写入main函数中

  4. 要分模块,不要把代码都写入一个.c中

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

  6. 课上上传代码到码云

代码实现

码云链接

MyOD.c

#include "head.h"
#include<stdio.h>
#include<stdlib.h>
void main()
{
    char filename[50];
    printf("input filename: ");
    scanf("%s",filename);
    ascii(filename);
    Hexa(filename);
}

ascii.c

#include "head.h"
#include<stdio.h>
#include<stdlib.h>
void ascii(char *filename)
{
    FILE *fp;
    char ch;
    fp=fopen(filename,"r");
    ch=fgetc(fp);
    printf("ascii: 
");
    while(ch != EOF)
    {
        if(ch=='
')
        {
            printf("
");
        }
        else
        {
            printf("%d, ",ch);
        }
        ch=fgetc(fp);
    }
}
Hexa.c

#include "head.h"
#include<stdio.h>
#include<stdlib.h>
void Hexa(char *filename)
{
    FILE *fp;
    char ch;
    printf("Hexadecimal numbers: 
");
    fp=fopen(filename,"r");
    ch=fgetc(fp);
    while(ch != EOF)
    {
        if(ch=='
')
        {
            printf("
");
        }
        else
        {
            printf("%x, ",ch);
        }
        ch=fgetc(fp);
    }
    fclose(fp);
}

结果截图

实验分析

本次编写的MyOD程序功能为:输入txt文件名,将文件内容转换为ascii码值与十六进制分别输出,在这里我是在主程序中调用两个子程序完成了打印。

原文地址:https://www.cnblogs.com/nxy970408/p/8000675.html