1. 程式人生 > ># 2017-2018-1 20155224 《信息安全系系統設計基礎》第四周MyOD

# 2017-2018-1 20155224 《信息安全系系統設計基礎》第四周MyOD

scanf xxx .com 命令行 .cn 令行 oid 模塊 子程序

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: \n");
    while(ch != EOF)
    {
        if(ch==‘\n‘)
        {
            printf("\n");
        }
        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: \n");
    fp=fopen(filename,"r");
    ch=fgetc(fp);
    while(ch != EOF)
    {
        if(ch==‘\n‘)
        {
            printf("\n");
        }
        else
        {
            printf("%x, ",ch);
        }
        ch=fgetc(fp);
    }
    fclose(fp);
}

結果截圖

技術分享圖片

實驗分析

本次編寫的MyOD程序功能為:輸入txt文件名,將文件內容轉換為ascii碼值與十六進制分別輸出,在這裏我是在主程序中調用兩個子程序完成了打印。

# 2017-2018-1 20155224 《信息安全系系統設計基礎》第四周MyOD