用c语言编写一个linux程序:通过find一个文件名,系统给一个路径,然后用c语言展开这个路径

用c语言编写一个linux程序:通过find一个文件名,系统给一个路径,然后用c语言展开这个路径,第1张

#include <stdioh>

#include <stdlibh>

#include <stringh>

int main(int argc, char argv[])

{

    char file_name[64] = {0};

    char file_path[128] = {0};

    char dir_path[64] = {0};

    char cmd[256] = {0};

    int  re = 0;

    FILE pf = NULL;

    char p = NULL;

    

    printf("请输入文件名:\n");

    scanf("%s", file_name);

    

    snprintf(cmd, 256, "find -name %s > tmptxt", file_name);//如果文件不在程序运行的本地目录(或者子目录)下,则需要改成find / -name xxxx 但耗时会很长

    system(cmd);

    

    //文件中取绝对路径

    pf = fopen("tmptxt", "r");

    if (pf)

    {

        re = fscanf(pf, "%s", file_path);//只取第一行 也就是默认不存在同名文件

        if (-1 == re)

        {

            printf("err0\n");

            return 0;

        }

        else

        {

            flcose(pf);

            pf = NULL;

        }

    }

    else

    {

        printf("err1\n");

        return 0;

    }

    

    if (0 == strlen(file_path))

    {

        printf("err2\n");

        return 0;

    }

    

    //获取目录名

    p = strstr(file_path, file_name);

    if (p)

    {

        p = '\0';

        strcpy(dir_path, file_path);//也可以不cp直接用file_path

    }

    

    //通过c语言展开ls这个路径c语言变量 其实我没有理解这句话 先这么做吧

    snprintf(cmd, 256, "ls %s", dir_path);

    system(cmd);

    

    return 0;

}

如果哪里有异常就加printf打印出来各个变量

     

  /   

        这是CBrowseDir的类定义文件   BrowseDirh     

     

  /   

  #include   "stdlibh"   

     

  class   CBrowseDir   

  {   

  protected:   

  //存放初始目录的绝对路径,以'\'结尾   

  char   m_szInitDir[_MAX_PATH];   

     

  public:   

  //缺省构造器   

  CBrowseDir();   

     

  //设置初始目录为dir,如果返回false,表示目录不可用   

  bool   SetInitDir(const   char   dir);   

     

  //开始遍历初始目录及其子目录下由filespec指定类型的文件   

  //filespec可以使用通配符      ,不能包含路径。   

  //如果返回false,表示遍历过程被用户中止   

  bool   BeginBrowse(const   char   filespec);   

     

  protected:   

  //遍历目录dir下由filespec指定的文件   

  //对于子目录,采用迭代的方法   

  //如果返回false,表示中止遍历文件   

  bool   BrowseDir(const   char   dir,const   char   filespec);   

     

  //函数BrowseDir每找到一个文件,就调用ProcessFile   

  //并把文件名作为参数传递过去   

  //如果返回false,表示中止遍历文件   

  //用户可以覆写该函数,加入自己的处理代码   

  virtual   bool   ProcessFile(const   char   filename);   

     

  //函数BrowseDir每进入一个目录,就调用ProcessDir   

  //并把正在处理的目录名及上一级目录名作为参数传递过去   

  //如果正在处理的是初始目录,则parentdir=NULL   

  //用户可以覆写该函数,加入自己的处理代码   

  //比如用户可以在这里统计子目录的个数   

  virtual   void   ProcessDir(const   char     

  currentdir,const   char   parentdir);   

  };   

     

     

  //   

     

  这是CBrowseDir的类实现文件   BrowseDircpp   

     

  //   

  #include   "stdlibh"   

  #include   "directh"   

  #include   "stringh"   

  #include   "ioh"   

     

  #include   "browsedirh"   

     

  CBrowseDir::CBrowseDir()   

  {   

  //用当前目录初始化m_szInitDir   

  getcwd(m_szInitDir,_MAX_PATH);   

     

  //如果目录的最后一个字母不是'\',则在最后加上一个'\'   

  int   len=strlen(m_szInitDir);   

  if   (m_szInitDir[len-1]   !=   '\\')   

  strcat(m_szInitDir,"\\");   

  }   

     

  bool   CBrowseDir::SetInitDir(const   char   dir)   

  {   

  //先把dir转换为绝对路径   

  if   (_fullpath(m_szInitDir,dir,_MAX_PATH)   ==   NULL)   

  return   false;   

     

  //判断目录是否存在   

  if   (_chdir(m_szInitDir)   !=   0)   

  return   false;   

     

  //如果目录的最后一个字母不是'\',则在最后加上一个'\'   

  int   len=strlen(m_szInitDir);   

  if   (m_szInitDir[len-1]   !=   '\\')   

  strcat(m_szInitDir,"\\");   

     

  return   true;   

  }   

     

  bool   CBrowseDir::BeginBrowse(const   char   filespec)   

  {   

  ProcessDir(m_szInitDir,NULL);   

  return   BrowseDir(m_szInitDir,filespec);   

  }   

     

  bool   CBrowseDir::BrowseDir   

  (const   char   dir,const   char   filespec)   

  {   

  _chdir(dir);   

     

  //首先查找dir中符合要求的文件   

  long   hFile;   

  _finddata_t   fileinfo;   

  if   ((hFile=_findfirst(filespec,&fileinfo))   !=   -1)   

  {   

  do   

  {   

  //检查是不是目录   

  //如果不是,则进行处理   

  if   (!(fileinfoattrib   &   _A_SUBDIR))   

  {   

  char   filename[_MAX_PATH];   

  strcpy(filename,dir);   

  strcat(filename,fileinfoname);   

  if   (!ProcessFile(filename))   

  return   false;   

  }   

  }   while   (_findnext(hFile,&fileinfo)   ==   0);   

  _findclose(hFile);   

  }   

     

  //查找dir中的子目录   

  //因为在处理dir中的文件时,派生类的ProcessFile有可能改变了   

  //当前目录,因此还要重新设置当前目录为dir。   

  //执行过_findfirst后,可能系统记录下了相关信息,因此改变目录   

  //对_findnext没有影响。   

  _chdir(dir);   

  if   ((hFile=_findfirst("",&fileinfo))   !=   -1)   

  {   

  do   

  {   

  //检查是不是目录   

  //如果是,再检查是不是      或        

  //如果不是,进行迭代   

  if   ((fileinfoattrib   &   _A_SUBDIR))   

  {   

  if   (strcmp(fileinfoname,"")   !=   0   &&   strcmp   

  (fileinfoname,"")   !=   0)   

  {   

  char   subdir[_MAX_PATH];   

  strcpy(subdir,dir);   

  strcat(subdir,fileinfoname);   

  strcat(subdir,"\\");   

  ProcessDir(subdir,dir);   

  if   (!BrowseDir(subdir,filespec))   

  return   false;   

  }   

  }   

      }   while   (_findnext(hFile,&fileinfo)   ==   0);   

  _findclose(hFile);   

  }   

  return   true;   

  }   

     

  bool   CBrowseDir::ProcessFile(const   char   filename)   

  {   

  return   true;   

  }   

     

  void   CBrowseDir::ProcessDir(const   char     

  currentdir,const   char   parentdir)   

  {   

  }   

     

     

  /   

  这是例子examplecpp     

         

  /   

  #include   "stdioh"   

     

  #include   "BrowseDirh"   

     

  //从CBrowseDir派生出的子类,用来统计目录中的文件及子目录个数   

  class   CStatDir:public   CBrowseDir   

  {   

  protected:   

  int   m_nFileCount;       //保存文件个数   

  int   m_nSubdirCount;   //保存子目录个数   

     

  public:   

  //缺省构造器   

  CStatDir()   

  {   

  //初始化数据成员m_nFileCount和m_nSubdirCount   

  m_nFileCount=m_nSubdirCount=0;   

  }   

     

  //返回文件个数   

  int   GetFileCount()   

  {   

  return   m_nFileCount;   

  }   

     

  //返回子目录个数   

  int   GetSubdirCount()   

  {   

  //因为进入初始目录时,也会调用函数ProcessDir,   

  //所以减1后才是真正的子目录个数。   

  return   m_nSubdirCount-1;   

  }   

     

  protected:   

  //覆写虚函数ProcessFile,每调用一次,文件个数加1   

  virtual   bool   ProcessFile(const   char   filename)   

  {   

  m_nFileCount++;   

  return   CBrowseDir::ProcessFile(filename);   

  }   

     

  //覆写虚函数ProcessDir,每调用一次,子目录个数加1   

  virtual   void   ProcessDir   

  (const   char   currentdir,const   char   parentdir)   

  {   

  m_nSubdirCount++;   

  CBrowseDir::ProcessDir(currentdir,parentdir);   

  }   

  };   

     

  void   main()   

  {   

  //获取目录名   

  char   buf[256];   

  printf("请输入要统计的目录名:");   

  gets(buf);   

     

  //构造类对象   

  CStatDir   statdir;   

     

  //设置要遍历的目录   

  if   (!statdirSetInitDir(buf))   

  {   

  puts("目录不存在。");   

  return;   

  }   

     

  //开始遍历   

  statdirBeginBrowse("");   

     

  //统计结果中,子目录个数不含      及      

  printf("文件总数:   %d\n子目录总数:     

  %d\n",statdirGetFileCount(),   

  statdirGetSubdirCount());   

  }

学生成绩的太多了,帮你找了一个图书管理的,希望能帮上忙,代码如下:

#include <stdioh>

#include <malloch>

#include <conioh>

#include <stringh>

#include <stdlibh>

#define LEN sizeof(struct booklist)

#define LEN2 sizeof(struct memberlist)

#define LEN3 sizeof(struct readers)

typedef struct readers//借书信息结构体

{

char name[30];//借书人的姓名

struct readers next2;

}reader;

//书本信息结构体

typedef struct booklist

{

char num[20]; //书号

char name[30]; //书名

char concern[50];//出版社

char date[20];//出版日期

char author[20];//作者

int page;//页数

int price;//价格

int imformation;//图书剩余数量

reader a;//借阅人

struct booklist next;

}Book;

void creatlist();//创建新的书本信息

void print(Book head);//打印书本信息

void save(Book head);//储存书本信息

void AddBook();//添加书本信息

void DelBook();//删除书本信息

Book read();//读取书本信息

void manager();//管理员 *** 作

void Bookconsult(); //图书查询

int Borrow();//借书

int Return();//还书

Book sort(Book head);//书本信息按书号排序

void imformation();//系统信息

Book head=NULL,p1=NULL,p2=NULL;

//创建新的书本信息

void creatlist()

{

int i,n;

printf("要创建的书本数目");

scanf("%d",&n);

p2=head=(Book )malloc(LEN); //创建带有头结点的链表

p2->a=(reader )malloc(LEN3);

p2->a->next2=NULL;

p2->next=NULL;

printf("请输入书的信息:\n");

for(i=1;i<=n;i++)

{

p1=(Book )malloc(LEN);

printf("书号: "); scanf("%s",p1->num);

printf("书名: "); scanf("%s",p1->name);

printf("出版社: "); scanf("%s",p1->concern);

printf("出版日期: "); scanf("%s",p1->date);

printf("作者: "); scanf("%s",p1->author);

printf("书本页数: "); scanf("%d",&p1->page);

printf("书本价格(元): "); scanf("%d",&p1->price);

p1->a=(reader )malloc(LEN3);

p1->a->next2=NULL;

p1->imformation=10;

p1->next=NULL;

p2->next=p1;

p2=p1;

if(i<n) printf("下一本:\n");

}

head=sort(head);

save(head);

print(head);

}

//打印书本信息

void print(Book head)

{

Book p=NULL;

reader p0=NULL;

p=head->next;

printf("\n");

while(p!=NULL)

{

printf("书号: %s\n书名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n书本页数(页) : %d\n书本价格(元) : %d\n剩余数量 : %d\n",p->num,p->name,p->concern,p->date,p->author,p->page,p->price,p->imformation);

printf("借阅图书的人:");

if(p->a->next2==NULL) printf("------------暂无借阅人!");

else

{

for(p0=p->a->next2;p0!=NULL;p0=p0->next2)

{

printf("%s ",p0->name);

}

}

p=p->next; / p后移一个结点 /

printf("\n");

printf("\n");

}

}

//书本信息按书号排序

Book sort(Book head)

{

Book p1=NULL,p2=NULL,p3=NULL,min=NULL,min2=NULL,head2=head->next;

p1=head2;

while(p1->next!=NULL)

{

min=p2=p1; /把首结点作为最小值/

while(p2->next!=NULL)

{

if(strcmp(min->num,p2->next->num)>0) /首结点与下一结点比较/

{

min2=p2;

min=p2->next;

}

p2=p2->next;

}

if(min!=p1)

{

min2->next=min->next; /删除最小结点/

min->next=p1; /插入最小结点/

if(p1==head2) head2=min;

else p3->next=min; /p3为min前的结点指针/

p3=min;

}

else

{

p3=p1;

p1=p1->next;

}

}

head->next=head2;

return(head);

}

//储存书本信息

void save(Book head)

{

FILE fp,fp2;

Book p=NULL;

reader q=NULL;

fp=fopen("书本信息txt","wb"); //printf("不能打开文件!\n");

fp2=fopen("借阅信息txt","wb"); //printf("不能打开文件!\n");

p=head;

while(p!=NULL)

{

fwrite(p,LEN,1,fp); /逐个结点写文件/

for(q=p->a;q!=NULL;q=q->next2)

{fwrite(q,LEN3,1,fp2);}

p=p->next;

}

fclose(fp);

fclose(fp2);

}

//添加书本信息

void AddBook()

{

FILE fp,fp2;

Book addbook=NULL;

reader p0=NULL;

fp=fopen("书本信息txt","ab"); //追加方式打开文件

fp2=fopen("借阅信息txt","ab");

addbook=(Book )malloc(LEN);

printf("输入书本信息:\n");

printf("书号: "); scanf("%s",addbook->num);

printf("书名: "); scanf("%s",addbook->name);

printf("出版社: "); scanf("%s",addbook->concern);

printf("出版日期: "); scanf("%s",addbook->date);

printf("作者: "); scanf("%s",addbook->author);

printf("书本页数: "); scanf("%d",&addbook->page);

printf("书本价格(元): "); scanf("%d",&addbook->price);

p0=(reader )malloc(LEN3);

p0->next2=NULL;

addbook->a=p0;

addbook->imformation=10;

addbook->next=NULL;

fwrite(addbook,LEN,1,fp); /块写/

fwrite(p0,LEN3,1,fp2);

fclose(fp);

fclose(fp2);

}

//读取书本信息

Book read()

{

FILE fp,fp2;

Book p=NULL,p1=NULL,head=NULL;

reader p0=NULL,p2=NULL;

if((fp=fopen("书本信息txt","rb"))==NULL) printf("不能打开文件或文件不存在!\n");

if((fp2=fopen("借阅信息txt","rb"))==NULL) printf("不能打开文件或文件不存在!\n");

head=(Book )malloc(LEN);

fread(head,LEN,1,fp);

p1=head;

p0=(reader )malloc(LEN3);

fread(p0,LEN3,1,fp2);

p0->next2=NULL;

head->a=p0;

head->next=NULL;

p=(Book )malloc(LEN);

while(fread(p,LEN,1,fp)) /逐个结点读取/

{

p1->next=p;

p1=p1->next;

p0=(reader )malloc(LEN3);

p1->a=p0;

while(fread(p0,LEN3,1,fp2))

{

if(p0->next2==NULL)

{

p2=p0;

p0=(reader )malloc(LEN3);

break;

}

p2=p0;

p0=(reader )malloc(LEN3);

p2->next2=p0;

}

free(p0);

p2->next2=NULL;

p=(Book )malloc(LEN);

}

p1->next=NULL;

free(p);

fclose(fp);

fclose(fp2);

head=sort(head);

if(head!=NULL) return(head);

else

{

printf("文件为空!\n");

return 0;

}

}

//删除书本信息

void DelBook()

{

Book head=NULL,p=NULL,q=NULL;

char bookname[30];

head=read();

printf("输入要删除的书名: ");

scanf("%s",bookname);

p=head;

while(p!=NULL)/按名字查找要删除的图书/

{

if(strcmp(p->name,bookname)==0)

{

if(p==head)

{

head=head->next;

break;

}

else

{

q->next=p->next;

break;

}

}

q=p;

p=p->next;

}

save(head);

}

//管理员 *** 作

void manager()

{

int n,i=0,k=1;

while(k==1)

{

printf("\n");

printf(" 请选择你需要的 *** 作\n");

printf(" ◎ 1建立新的书本信息\n");

printf(" ◎ 2插入书本信息\n");

printf(" ◎ 3删除书本信息\n");

printf(" ◎ 4读取所有书本信息\n");

printf(" ◎ 5读取指定书本信息\n");

printf(" ◎ 6返回到上级目录\n");

printf(" ◎ 7保存并退出\n");

printf("请输入:");

scanf("%d",&n);

switch(n)

{

case 1: creatlist();break;

case 2: AddBook();break;

case 3: DelBook();break;

case 4: head=read();system("CLS");print(head);break;

case 5: system("CLS");Bookconsult();break;

case 6: k=0;break;

default: k=0;break;

}

}

}

//图书查询

void Bookconsult()

{

int n,m=1,sign=0;

Book p=NULL,p1=NULL,p0=NULL,head=NULL;

reader p2=NULL;

char a[30],b[20],c[20];

head=read();

while(m==1)

{

printf(" 请选择你查询书本的方式: 1按书名 2按书的编号 3按书的作者 4退出查询\n");

printf("输入=");

scanf("%d",&n);

switch(n)

{

case 1: printf("请输入书名:");

scanf("%s",a);

p0=head;

while(p0!=NULL)

{

if(strcmp(a,p0->name)==0)

{

printf("\n");

printf("书号: %s\n书名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n书本页数(页) : %d\n书本价格(元) : %d\n剩余数量 : %d\n",p0->num,p0->name,p0->concern,p0->date,p0->author,p0->page,p0->price,p0->imformation);

printf("借阅图书的人:");

if(p0->a->next2==NULL) printf("------------暂无借阅人!\n");

else

{

for(p2=p0->a;(p2=p2->next2)!=NULL;)

{printf("%s ",p2->name);}

}

printf("\n");

sign=1;

p0=p0->next;

}

else p0=p0->next;

}

if(sign==0) printf("没有这本书的信息\n");

break;

case 2: printf("请输入书的编号:");

scanf("%s",b);

p0=head;

while(p0!=NULL)

{

if(strcmp(b,p0->num)==0)

{

printf("\n");

printf("书号: %s\n书名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n书本页数(页) : %d\n书本价格(元) : %d\n剩余数量 : %d\n",p0->num,p0->name,p0->concern,p0->date,p0->author,p0->page,p0->price,p0->imformation);

printf("借阅图书的人:");

if(p0->a->next2==NULL) printf("------------暂无借阅人!\n");

else

{

for(p2=p0->a;(p2=p2->next2)!=NULL;)

{printf("%s ",p2->name);}

}

printf("\n");

break;

}

else p0=p0->next;

}

if(p0==NULL) printf("没有这本书的信息\n");

break;

case 3: printf("请输入书的作者:");

scanf("%s",c);

p0=head;

while(p0!=NULL)

{

if(strcmp(c,p0->author)==0)

{

printf

("\n");

printf("书号: %s\n书名: %s\n出版社: %s\n出版日期: %s\n作者: %s\n书本页数(页) : %d\n书本价格(元) %d\n剩余数量 : %d\n",p0->num,p0->name,p0->concern,p0->date,p0->author,p0->page,p0->price,p0->imformation);

printf("借阅图书的人:");

if(p0->a->next2==NULL) printf("------------暂无借阅人!\n");

else

{

for(p2=p0->a;(p2=p2->next2)!=NULL;)

{printf("%s ",p2->name);}

}

printf("\n");

sign=1;

p0=p0->next;

}

else p0=p0->next;

}

if(sign==0) printf("没有这本书的信息\n");

break;

default: m=0;break;

}

}

}

//借书

int Borrow()

{

char a[30],b[30],c;

Book p0=NULL,head=NULL;

reader p2=NULL,p3=NULL;

head=read();

printf("请输入要借的书的书号:");

scanf("%s",a);

p0=head->next;

while(p0!=NULL)

{

if((strcmp(a,p0->num))==0)

{

if(p0->imformation>0)

{

printf("图书在馆,可以借出,是否确定借出?'y'or'n'\n");

c=getchar();

scanf("%c",&c);

if(c=='y')

{

printf("请再次输入你的用户名:");

scanf("%s",b);

p3=(reader )malloc(LEN3);

strcpy(p3->name,b);

if(p0->a->next2==NULL)

{

p0->a->next2=p3;

p3->next2=NULL;

}

else

{

for(p2=p0->a;p2->next2!=NULL;p2=p2->next2);

p2->next2=p3;

p3->next2=NULL;

}

--p0->imformation;

save(head);

printf(" *** 作完成,可以带走图书。\n");

return 1;

break;

}

else

{

return 0;

break;

}

}

else printf("很抱歉,该图书不在馆\n");return 0;break;

}

else p0=p0->next;

}

if(p0==NULL)

{

printf("很抱歉,没有这本书。\n");

return 0;

}

else return 2;

}

//还书

int Return()

{

Book p0=NULL,head=NULL;

reader p2=NULL,p3=NULL;

char c[20],b[30];

head=read();

printf("请输入要还的书的书号:");

scanf("%s",&c);

p0=head->next;

while(p0!=NULL)

{

if((strcmp(c,p0->num))==0)

{

printf("请输入你的用户名:");

scanf("%s",&b);

if(p0->a->next2==NULL) {printf("你没有借这本书!\n");break;}

else

{

p3=p0->a;

p2=p3->next2;

while(p2!=NULL)

{

if(strcmp(p2->name,b)==0)

{

if(p2->next2==NULL) {p3->next2=NULL;free(p2);break;}

else

{

p3->next2=p2->next2;

free(p2);

break;

}

}

else

{

p3=p2;

p2=p2->next2;

}

}

if(p2==NULL) printf("你没有借这本书!\n");

}

++p0->imformation;

save(head);

printf("书已归馆, *** 作完成。\n");

return 1;

break;

}

else p0=p0->next;

}

if(p0==NULL)

{

printf("没有这本书。\n");

return 0;

}

else return 2;

}

//借书信息

void imformation()

{

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※ 欢迎你使用我们的图书管理系统!以下是本系统的有关说明: ※\n");

printf("※本系统主要功能是进行图书的有关管理,你可以进行图书信息的创建、插入、删除、 ※\n");

printf("※查询;在 *** 作中主要是以阿拉伯数字来选择相应的菜单功能,在选择时以'y'表示 '是' ※\n");

printf("※以'n'表示'不是'。在你 *** 作的时候就会有相应的 *** 作提示。 ※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

}

main()

{

int n,k=1;

printf("\n");

printf("\n\n");

printf(" 欢迎进入我们的图书管理系统! \n");

printf("\n\n");

printf("\n");

while(k==1)

{

printf(" 请选择你的 *** 作: 1管理员 *** 作 2系统信息 3退出系统\n");

printf("\n");

printf(" 你的选择是:");

scanf("%d",&n);

system("CLS");

switch(n)

{

case 1: manager();break;

case 2: imformation();break;

default: printf("+++++++++++++++++++++++++++欢迎你再次使用我们的系统!++++++++++++++++++++++++++++\n");k=0;break;

}

}

}

根据你写得要求:

一、头文件file1h中放了一个函数申明语句。源文件中放了函数。

二、根据头文件的include语句解析字符串获取头文件名,与头文件默认路径(常量)组成文件路径。同字符串的匹配找到在语句在源文件的位置,并读取头文件内容替换到源文件对应位置。

三、合并后的内容,我是写入新的文件中,如你想要覆盖同文件,自行修改路径常量。

#include <stdioh>

#include <malloch>

#include <stringh>

#define NN "C:\\newFilec"//合并后的文件完整路径

#define HPH "C:\\"//头文件的默认路径

int getFSize(char Path);//获取文件字节数,参数文件路径

char readHFile(char hPath);//获取头文件内容

char checkCFile(char cPath,char hcon);// 检查源文件,找到对应includ语句,替换成对应头文件内容,并保存到新的文件中

int findStr(char str1,char str2);//在str1中查找str2,返回str2在str1中对应的首尾字符下标

int main()

{

  char newFile=NULL;

  newFile=checkCFile("C:\\file1c","#include\"file1h\"");

  if(newFile)

      printf("合并成功,合并后的文件内容为(路径:%s):\n%s\n",NN,newFile);

  else

      printf("合并失败,无匹配内容\n");

  free(newFile);

  return 0;

}

int getFSize(char Path)

{

  int fSize=0;

  if(!Path) return 0;

  FILE fp=NULL;

  fp=fopen(Path,"r");

  if(!fp) return 0;

  fseek(fp,0,SEEK_END);

  fSize=ftell(fp);

  fclose(fp);

  return fSize;

}

char checkCFile(char cPath,char hcom)

{

  int i=0,inx=NULL,fSize=0,hfnLen=0,hPLen=0,len=0;

  char fcon=NULL,hcon=NULL,newfcon=NULL,hPath=NULL,pb=hcom,pe=pb,hfn=NULL;

  if(!cPath || !hcom) return NULL;

  FILE fp=NULL;

  fp=fopen(cPath,"rb+");//这里不要要用r,避免下面计算大小误差

  if(!fp) return 0;

  if(!(fSize=getFSize(cPath))) return NULL;

  printf("源文件大小:%d字节\n",fSize);

  fcon=(char )malloc(sizeof(char)(fSize+1));

  if(!fcon) return 0;

  fcon[fSize]=0;

  //fseek(fp,0,SEEK_SET);

  if(fread(fcon,1,fSize,fp)!=fSize) return NULL;

  printf("源文件内容为:\n%s\n",fcon);

  if(!(inx=findStr(fcon,hcom))) return NULL;//将找到的匹配内容所在下标保存在inx指向地址

  fclose(fp);

  //----通过include语句获取头文件文件名---

  while(pb!='"')pb++;

  pb++,pe=pb;

  while(pe!='"')pe++;

  hfnLen=pe-pb;

  hfn=(char )malloc(sizeof(char)(hfnLen+1));

  if(!hfn)return NULL;

  hfn[hfnLen]=0;

  while(pb<pe)hfn[i++]=pb,pb++;

  //----------------------------------------

  hPLen=hfnLen+strlen(HPH);

  hPath=(char )malloc(sizeof(char)(hPLen+1));

  strcpy(hPath,HPH);

  strcat(hPath,hfn);

  hPath[hPLen]=0;

  hcon=readHFile(hPath);//获得头文件对应内容

  //----合并两个文件内容到新的数组,释放原数组---

  len=fSize-strlen(hcom)+strlen(hcon);

  newfcon=(char )malloc(sizeof(char)(len+1));

  if(!newfcon) return NULL;

  newfcon[0]=0;

  fcon[inx[0]]=0;

  pb=fcon;

  strcpy(newfcon,pb);

  pb=hcon;

  strcat(newfcon,pb);

  pb=&fcon[inx[1]+1];

  strcat(newfcon,pb);

  newfcon[len]=0;

  free(fcon);

  free(hcon);

  free(hfn);

  //----------------------------------------------

  //-------------写入新文件-----------------------

  fp=fopen(NN,"w");

  if(!fp) return NULL;

  fwrite(newfcon,1,strlen(newfcon),fp);

  fclose(fp);

  //---------------------------------------------

  return newfcon;

}

char readHFile(char hPath)

{

  int fSize=0;

  char hcon=NULL;

  FILE fp=NULL;

  fp=fopen(hPath,"rb+");

  if(!fp)return NULL;

  if(!(fSize=getFSize(hPath)))return NULL;

  printf("头文件大小:%d字节\n",fSize);

  hcon=(char )malloc(sizeof(char)(fSize+1));

  if(!hcon) return NULL;

  hcon[fSize]=0;

  if(fread(hcon,1,fSize,fp)!=fSize) return NULL;

  printf("头文件内容为:\n%s\n",hcon);

  fclose(fp);

  return hcon;

}

int findStr(char str1,char str2)

{

  char p0=NULL,p1=NULL;

  int i,cnt=0,len1,len2;

  static int inx[2];//str2首尾字符在str1中的对应下标

  if(!str1 || !str2) return NULL;

  inx[0]=inx[1]=0;

  len1=strlen(str1);

  len2=strlen(str2);

  for(i=0;i<len1;i++)

  {

      cnt=0,p0=&str1[i],p1=p0+len2-1;

      //每次搜索,先用p0,p1定位str2的在str1中的首尾位置,进行字符对比,再两指针向内收缩比较

      if(p0!=str2[cnt] || p1!=str2[len2-1-cnt]) continue;

      cnt++,p0++,p1--;

      while(p0<=p1)

      {

          if(p0!=str2[cnt] || p1!=str2[len2-1-cnt]) break;//只要一对字符不匹配,跳过本次对比

          cnt++,p0++,p1--;

      }

      if(p0>p1)//没有跳过说明本次完全匹配,记录首尾位置

      {

          inx[0]=i,inx[1]=i+len2-1;

          return inx;

      }

  }

  return NULL;

}

admin

123456

int insert(int);//添加书籍

int search(int d);//书籍查找

void chaxun(int);//查询

void main1();//书籍查询界面

void shezhi();//界面设置

void know();//用户须知

void bye();//结束界面

void jie();//借书

void huan();//还书

int syhyk(double k);//使用会员卡

double jisuan(int k);//计算费用

void check(int k);//月年日合法性

int findid(int d);//办理借阅手续

int del();//删除书籍

int huiyuan(int);//会员功能界面

int tianjia(int m);//添加会员

int jiancha(int temp);//会员卡号检查

void srmima(int m);//输入密码

void srsfz(int m);//输入身份z

void chaxunhuiyuan(int m);//查询会员

void help();//软件帮助

struct members{

int mid;//会员卡号

char name[20];//姓名

char idcard[19];//身份z

char mima[7];

char address[50];

int sfjie;//是否借书

}member[N];

struct books{

int bookid;

char bookname[30];

char writer[10];

int zhuangtai;

int year,month,day;

}book[N]={

{10001,"C语言","谭浩强",1,0,0,0},

{10002,"C++","不详",1,0,0,0},

{10003,"诛仙","不详",1,0,0,0},

{10004,"佛公子","不详",1,0,0,0},

{10005,"鬼律师","不详",1,0,0,0},

{10006,"PHP编程","不详",1,0,0,0},

{10007,"C#编程","不详",1,0,0,0}

};

void main()

{

int m,d,i=7,mem=0;

system("color 0e");//调用颜色函数

jiemian();

printf("\n\n\n\n\n\n");

printf("\t 按ENTER继续");

fflush(stdin);

getchar();

system("cls");//清屏,等于在DOS上使用cls命令

administrator();

do{

system("cls");

starmain();

scanf("%d",&m);

switch(m)

{

case 1:system("cls");

i=insert(i);

break;

case 2:system("cls");

chaxun(i);

break;

case 3:system("cls");

jie();

break;

case 4:system("cls");

huan();

break;

case 5:system("cls");

d=del();

if(d==0)

{

printf("\n\n\t 无法删除,没找到此书或此书已经借出!");

fflush(stdin);

getchar();

}

else if(d==1)

{

i--;

printf("\n\n\t 删除成功!");

fflush(stdin);

getchar();

}

break;

case 6:system("cls");

mem=huiyuan(mem);

break;

case 0:system("cls");

shezhi();

break;

case 7:system("cls");

help();

fflush(stdin);

getchar();

break;

case 8:system("cls");

bye();

}

system("cls");

printf("\n\n\n\n\n\n\n\n\n\n\t *** 作结束,按 ENTER 回到主菜单");

fflush(stdin);

getchar();

}while(1);

}

void administrator()

{

char id[12],mima[6];

int n,k;

for(k=0;k<3;k++)

{

system("cls");

printf("\n\n\n\n\n\n\t 要进入管理系统请先输入管理员帐号和密码\n\n");

printf("\n\t 请输入管理帐号:");

fflush(stdin);

gets(id);

printf("\n\t 请输入管理密码:");

for(n=0;n<6;n++)

{

fflush(stdin);

mima[n]=getch();//从控制台无回显地取一个字符

printf("");

}

mima[n]='\0';

fflush(stdin);

getchar();

if(!strcmp(id,"admin")&&!strcmp(mima,"123456"))

break;

else

{

system("cls");

if(k==2)

{

printf("\n\n\n\n\n\n\n\n\n\n\n\t\t很抱歉,您输入次数超过3次,按任意键将退出系统");

fflush(stdin);

getchar();

system("cls");

bye();

break;

}

printf("\n\n\n\n\n\n\n\n\t\t 用户名或密码错误,请重新输入!");

fflush(stdin);

getchar();

}

}

}

void star()

{

printf("\t ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");

printf("\t ┃┏ ┓┃\n");

printf("\t ┃ ┃\n");

printf("\t ┃ ┃\n");

printf("\t ┃ 图 书 管 理 系 统 ┃\n");

printf("\t ┃ ┃\n");

printf("\t ┃ ┃\n");

printf("\t ┃ 无聊工作室制作 ┃\n");

printf("\t ┃ ┃\n");

printf("\t ┃┗ ┛┃\n");

printf("\t ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

}

int insert(int i)

{

char a;

int d,k;

for(i=i;i<9999;i++)

{

system("cls");

printf("\n\n\n\t ┏━━━━━━━━━━━━━添加新书━━━━━━━━━━━━┓\n\n\n");

printf("\t 请输入书籍编号:");

fflush(stdin);

scanf("%d",&d);

k=search(d);

if(k==1)

{

book[i]bookid=d;

printf("\n\n\t 请输入书籍名:");

fflush(stdin);

gets(book[i]bookname);

printf("\n\n\t 请输入书的作者名:");

fflush(stdin);

gets(book[i]writer);

fflush(stdin);

book[i]zhuangtai=1;

printf("\n\n\n\t ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

printf("\t 是否还要继续添加新书(y/n):");

fflush(stdin);

a=getchar();

if(a=='n'||a=='N')

break;

}

else

i--;

}

return i+1;

}

void huan()

{

char a;

double money,p;

int k,d,f=1;

system("date/t");

printf("\n\n\t┏━━━━━━━━━━━━━━还 书━━━━━━━━━━━━━━┓");

printf("\n\n\n\t 请输入您要还书的编号:");

scanf("%d",&d);

for(k=0;k<10000;k++)

{

if(d==book[k]bookid&&book[k]zhuangtai==0)

{

printf("\n\n\t编号\t书名\t\t作者\t状态\t借出日期\n\n");

printf("\t%d\t%s\t\t%s\t%d\t%d-%d-%d\n",book[k]bookid,book[k]bookname,book[k]writer,book[k]zhuangtai,book[k]year,book[k]month,book[k]day);

money=jisuan(k);

printf("\n\n\t 您是否使用会员卡(y/n):");

fflush(stdin);

a=getchar();

if(a=='y'||a=='Y')

{

p=syhyk(money);

if(p==0)

{

printf("\n\n\t 没找到该会员卡号,或着您输入错误,请重新办理还书手续!");

fflush(stdin);

getchar();

f=3;

break;

}

if(p==1)

{

book[k]zhuangtai=1;

book[k]year=0;book[k]month=0;book[k]day=0;

f=1;

break;

}

}

printf("\n\n\t 您需要支付%2f元,谢谢光临!",money);

printf("\n\t 押金除去租书费用归,还付你%2f元",10-money);

book[k]zhuangtai=1;

book[k]year=0;book[k]month=0;book[k]day=0;

fflush(stdin);

getchar();

printf("\n\n\t 还书成功!");

f=1;

fflush(stdin);

getchar();

break;

}

else

f=0;

}

if(f==0)

{

printf("\n\n\t 没找到这本书的编号,或该书没被借阅,请确定是否输入错误!");

fflush(stdin);

getchar();

}

}

int syhyk(double k)

{

int d,j,i,p;

char a[7];

printf("\n\n\t 请输入您的会员卡卡号:");

scanf("%d",&d);

for(j=0;j<10000;j++)

{

if(d==member[j]mid)

{

printf("\n\n\t 请输入您的密码:");

for(i=0;i<6;i++)

{

fflush(stdin);

a[i]=getch();

printf("");

}

fflush(stdin);

getchar();

a[6]='\0';

if(strcmp(a,member[j]mima)==0)

{

printf("\n\n\t 谢谢使用会员服务,你只需要支付%2f元",k08);

member[j]sfjie--;

printf("\n\n\t 还书成功,谢谢光临!");

fflush(stdin);

getchar();

p=1;

break;

}

}

else

p=0;

}

return p;

}

double jisuan(int k)

{

int y,m,r;

double money=0;

printf("\n\n\t 请输入还书日期(年-月-日):");

scanf("%d-%d-%d",&y,&m,&r);

m=m;

r=r;

if(y==book[k]year&&m==book[k]month&&r>=book[k]day)

{

money=(r-book[k]day+1)05;

}

else if(y==book[k]year&&m>book[k]month)

{

if(book[k]month<=2&&m>2)

money=((m-book[k]month)30+r-book[k]day-2+1)05;

else

money=((m-book[k]month)30+r-book[k]day+1)05;

}

else if(y>book[k]year)

money=((y-book[k]year)365+(m-book[k]month)30+r-book[k]day+1)05;

else

{

printf("\n\n\t 您日期输入错误,请重新输入");

jisuan(k);

}

return money;

}

int search(int d)

{

int k,p=1;

for(k=0;k<10000;k++)

if(d==book[k]bookid)

{

p=0;

printf("\n\n\n\n\t 你输入书籍编号已经存在!");

fflush(stdin);

getchar();

break;

}

return p;

}

void starmain()

{

printf("系统日期:");

system("date/t");//调用年月日函数

printf("系统时间:");

system("time/t");//时间调用函数

printf("\n\t 无聊工作室欢迎您使用图书管理系统 \n\n");

printf("\t ┏━━━━━━━━━━━━━━━━━━━━━━━━┓\n");

printf("\t ┃ ┃\n");

printf("\t ┃ 菜 单 ┃\n");

printf("\t ┃ ┃\n");

printf("\t ┣━━━━━━━━━━━━┳━━━━━━━━━━━┫\n");

printf("\t ┃ ⑴ 添加新书 ┃ ⑵ 查询书籍 ┃\n");

printf("\t ┣━━━━━━━━━━━━╋━━━━━━━━━━━┫\n");

printf("\t ┃ ⑶ 借 书 ┃ ⑷ 还 书 ┃\n");

printf("\t ┣━━━━━━━━━━━━╋━━━━━━━━━━━┫\n");

printf("\t ┃ ⑸ 删除书籍 ┃ ⑹ 会员服务 ┃\n");

printf("\t ┣━━━━━━━━━━━━╋━━━━━━━━━━━┫\n");

printf("\t ┃ ⑺ 软件帮助 ┃ ⑻ 退出系统 ┃\n");

printf("\t ┣━━━━━━━━━━━━┻━━━━━━━━━━━┫\n");

printf("\t ┃ 无聊工作室制作 ┃\n");

printf("\t ┗━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

printf("\n\t 请选择服务项目(1~8):");

}

void chaxun(int i)

{

int m,k,quit=1;

do{

system("cls");

main1();

fflush(stdin);

scanf("%d",&m);

switch(m)

{

case 1:

system("cls");

printf("\n\n ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵所有书籍详细资料∵∵∴∵∴∵∴∵∴∵∴∵∴∵∴\n\n");

printf("\t编号\t书名\t\t作者\t状态\t借出日期\n\n");

for(k=0;k<i;k++)

printf("\t%d\t%s\t\t%s\t%d\t%d-%d-%d\n",book[k]bookid,book[k]bookname,book[k]writer,book[k]zhuangtai,book[k]year,book[k]month,book[k]day);

break;

case 2:

system("cls");

printf("\n\n ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵查看借出书籍∵∵∴∵∴∵∴∵∴∵∴∵∴∵∴\n\n");

printf("\t编号\t书名\t\t状态\t借出日期\n\n");

for(k=0;k<i;k++)

if(book[k]zhuangtai==0)

printf("\t%d\t%s\t\t%d\t%d-%d-%d\n",book[k]bookid,book[k]bookname,book[k]zhuangtai,book[k]year,book[k]month,book[k]day);

break;

case 3:

system("cls");

printf("\n\n ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵查看未借书籍∵∵∴∵∴∵∴∵∴∵∴∵∴∵∴\n\n");

printf("\t编号\t书名\t\t状态\t\n\n");

for(k=0;k<i;k++)

if(book[k]zhuangtai==1)

printf("\t%d\t%s\t\t%d\n",book[k]bookid,book[k]bookname,book[k]zhuangtai);

break;

case 4:

system("cls");

quit=0;

break;

default:system("cls");

printf("\n\n\n\n\n\n\n\n\n\n\t 输入错误,请重新输入!");

fflush(stdin);

getchar();

break;

}

if(quit!=0)

{

printf("\n\n\n\n\n\n\t 按ENTER返回目录");

fflush(stdin);

getchar();

}

}while(quit);

}

void jie()

{

char h;

int d,m=1;

system("cls");

printf("\n\n\t┏━━━━━━━━━━━━━━借 书━━━━━━━━━━━━━━┓");

know();

printf("\n\n\t =====>请按Y确认继续,按其他结束:");

fflush(stdin);

h=getchar();

if(h=='y'||h=='Y')

{

printf("\n\n\n\t 请输入您要借阅的书籍编号:");

fflush(stdin);

scanf("%d",&d);

m=findid(d);

if(m==0)

{

printf("\n\n\t 借阅不成功,没找到此书或此书以借出!");

fflush(stdin);

getchar();

}

else if(m==2)

{

system("cls");

printf("\n\n\n\n\n\n\n\n\n\n\t您的会员卡卡号没有登记,请先办理会员卡再进行会员服务,谢谢合作!");

fflush(stdin);

getchar();

}

else

m=1;

}

else

getchar();

}

int findid(int d)

{

int k,m=1,h,j,i;

char p;

char a[7];

for(k=0;k<10000;k++)

{

if(book[k]bookid==d&&book[k]zhuangtai)

{

printf("\n\n\t编号\t书名\t\t作者\t状态\n\n");

printf("\t%d\t%s\t\t%s\t%d\n",book[k]bookid,book[k]bookname,book[k]writer,book[k]zhuangtai,book[k]year,book[k]month);

printf("\n\t 本书未被借阅,请确定是否借阅(y/n):");

fflush(stdin);

p=getchar();

if(p=='y'||p=='Y')

{

printf("\n\n\t 您是否使用会员卡办理借阅手续(y/n):");

fflush(stdin);

p=getchar();

if(p=='y'||p=='Y')

{

printf("\n\n\t 请输入您的会员卡卡号:");

scanf("%d",&h);

for(j=0;j<100;j++)

{

if(h==member[j]mid)

{

printf("\n\n\t 请输入您的密码:");

for(i=0;i<6;i++)

{

fflush(stdin);

a[i]=getch();

printf("");

}

fflush(stdin);

getchar();

a[6]='\0';

if(strcmp(a,member[j]mima)==0)

{

member[j]sfjie++;

check(k);

printf("\n\n\t 使用会员卡借阅成功,谢谢光临,请您爱护好书籍!");

fflush(stdin);

getchar();

book[k]zhuangtai=0;

m=1;

break;

}

else

{

printf("\n\n\t 您密码输入都错误,请退出!");

fflush(stdin);

getchar();

jie();

}

}

else

{

m=2;

break;

}

}

}

else

{ printf("\n\n\t 请付10元/本的押金,还书时候退还。谢谢合作");

check(k);

printf("\n\n\t 借阅成功,谢谢光临,请您爱护好书籍!");

fflush(stdin);

getchar();

book[k]zhuangtai=0;

m=1;

break;

}

}

if(m==2)

{

m=2;

break;

}

else

{

m=3;

break;

}

}

else

m=0;

}

return m;

}

void check(int k)

{

int y,m,d,i;

printf("\n\n");

printf("\t\t系统日期:");

system("date/t");

printf("\n\t 请输入日期(年-月-日):");

fflush(stdin);

scanf("%d-%d-%d",&y,&m,&d);

if(m<1||m>12)

{

printf("\n\n\t 日期输入错误,请重新输入\n");

check(k);

}

if((y%4==0&&y%100!=0)||(y%400==0)&&(m==1||m==2))

{

switch(m)

{

case 1:if(d>=1&&d<=31)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else i=1;

break;

case 2:if(d>=1&&d<=29)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

}

}

else

{

switch(m)

{

case 1:if(d>=1&&d<=31)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 2:if(d>=1&&d<=28)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 3:if(d>=1&&d<=31)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 4:if(d>=1&&d<=30)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 5:if(d>=1&&d<=31)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 6:if(d>=1&&d<=30)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 7:if(d>=1&&d<=31)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 8:if(d>=1&&d<=31)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 9:if(d>=1&&d<=30)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 10:if(d>=1&&d<=31)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 11:if(d>=1&&d<=30)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

case 12:if(d>=1&&d<=31)

{

book[k]year=y;

book[k]month=m;

book[k]day=d;

}

else

i=1;

break;

}

}

if(i==1)

{

printf("\n\n\t 日期输入错误,请重新输入\n");

check(k);

}

}

int del()

{

int s,k,j,m,d;

char g;

printf("\n\n\t┏━━━━━━━━━━━━━删除书籍━━━━━━━━━━━━━┓");

printf("\n\n\n\t 请输入要删除的书籍编号:");

fflush(stdin);

scanf("%d",&s);

for(k=0;k<100;k++)

{

if(book[k]bookid==s&&book[k]zhuangtai==1)

{

printf("\n\n\t 此书信息如下:\n\n");

printf("\t编号\t书名\t\t作者\t状态\t借出日期\n");

printf("\t%d\t%s\t\t%s\t%d\t%d-%d-%d\n",book[k]bookid,book[k]bookname,book[k]writer,book[k]zhuangtai,book[k]year,book[k]month,book[k]day);

printf("\n\n\t 您确定要删除该书吗(y/n):");

fflush(stdin);

g=getchar();

if(g=='y'||g=='Y')

{

for(j=0;j<100;j++)

{

if(s==book[j]bookid)

{

for(m=j;m<100;m++)

book[m]=book[m+1];

}

}

d=1;

break;

}

else

{

d=2;

break;

}

}

else

d=0;

}

return d;

}

void main1()

{

printf("\n\n\n\n\t ┏━━━━━━━━━━━━━━━━━━━━━━━━┓\n");

printf("\t ┃ ┃\n");

printf("\t ┃ 查 询 菜 单 ┃\n");

printf("\t ┃ ┃\n");

printf("\t ┣━━━━━━━━━━━━┳━━━━━━━━━━━┫\n");

printf("\t ┃ ⑴ 查看所有书籍 ┃ ⑵ 查看借出书籍 ┃\n");

printf("\t ┣━━━━━━━━━━━━╋━━━━━━━━━━━┫\n");

printf("\t ┃ ⑶ 查看未借书籍 ┃ ⑷ 返回上级目录 ┃\n");

printf("\t ┃ ⑶ 修改会员密码 ┃ ⑷ 退会办理 ┃\n");

printf("\t ┣━━━━━━━━━━━━┻━━━━━━━━━━━┫\n");

printf("\t ┃ ⑸ 返回上级目录 ┃\n");

printf("\t ┗━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

printf("\n\n\n\n\n\n\n\t 请选择:");

fflush(stdin);

scanf("%d",&h);

switch(h)

{

case 1:system("cls");

m=tianjia(m);

break;

case 2:system("cls");

chaxunhuiyuan(m);

break;

case 3:system("cls");

printf("\n\n

以上就是关于用c语言编写一个linux程序:通过find一个文件名,系统给一个路径,然后用c语言展开这个路径全部的内容,包括:用c语言编写一个linux程序:通过find一个文件名,系统给一个路径,然后用c语言展开这个路径、怎么用C语言编程遍历文件夹下所有文件名、c语言课程设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10180293.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存