zoukankan      html  css  js  c++  java
  • 20191325选做作业MyOD

    选做作业MyOD

     

    复习c文件处理内容

    "r"为读而打开文本文件(不存在则出错)

    "w"为写而打开文本文件(若不存在则新建,反之,则从文件起始位置写,原内容将被覆盖)

    "a"为在文件后面添加数据而打开文本文件(若不存在,则新建;反之,在原文件后追加)

    "r+"为读和写而打开文本文件(读时,从头开始;在写数据时,新数据只覆盖所占的空间,其后不变)

    "wb"为写而打开二进制文件

    "rb"为读而打开二进制文件

    "ab"为在文件后添加数据而打开一个二进制文件

    "rb+"为读和写而打开二进制文件,只是再随后的读写中,可以由位置函数设置读和写的起始位置

    "w+"首先建立一个新文件,进行写操作,随后可以从头开始读(若文件存在,原内容将全部消失)

    "a+"功能与”a”相同;只是在文件尾部添加新的数据后,可以从头开始读

    "wb+"功能与"w+”同.只是在随后的读写时,可以由位置函数设置读和写的起始位置

    "ab+"功能与”a+”相同;只是在文件尾部添加新数据之后,可以由位置函数设置开始读的起始位置

     

    常见的一些文件操作

    1、读取文件

    img

     

     

     

    char * fgets(char *s, int n, FILE *stream);

    s:字符型指针,指向存储读入数据的缓冲区的地址

    n:从流中读入n-1字符

    stream:指向读取的流

     

    2、行读取

    img

    3、写入

    img

    int fputs(const char *str, FILE *stream);

    str:这是一个数组,包含了要写入的以空字符终止的字符序列

    stream:指向FILE对象的指针,该FILE对象标识了要被写入字符串的流

     

    来源:https://www.cnblogs.com/ljxt/p/11579584.html

     

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

    代码:

    #include <stdio.h>

    #include <stdlib.h>

    #include "head.h"

    #define N 1000

    #define M 17

    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(" ");

    }

    void tc(char args[])

    {

    int i;  

    printf("       ");

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

    {

      if(args[i]==' ')

                  printf("\n");

      else

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

    }

    printf(" ");

    }

    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);

    }

    静态库和动态库

    静态库

    动态库

    编写Makefile

     

     

    运行结果

     

     

    在编写makefile时刚开始只有每行行头空格处使用了tab,但在使用makefile时报错为makefile错误2,经过查阅资料,报错2为使用空格报错,将每个需要空格处均改为tab解决了问题。

  • 相关阅读:
    1.初识Redis
    2.API的理解和使用
    8.rabbitmq RPC模拟微服务架构中的服务调用
    9.[完]其他常用的rabbitmq的参数和设置
    6.Header交换机之模拟验证用户身份
    C#中复制文件夹及文件的两种方法
    python通过递归将多维字典转化为二维
    python venv flask gunicorn 部署与 pycharm 连接
    Nagios(centos 6.5)调用NSClient++/NRPE+Powershell脚本(windows server 2008 r2)监控网络情况
    Nagios 调用华为云短信平台进行报警
  • 原文地址:https://www.cnblogs.com/2902480848sy/p/15339657.html
Copyright © 2011-2022 走看看