为程序员解忧的C++语言

下文着重介绍如何利用C语言编写系统软件的小程序来解决作系统的一些大问题。
首页 新闻资讯 行业资讯 为程序员解忧的C++语言

我们知道C++语言的功能非常强大,很适合编写系统软件。利用它我们可以很容易地解决经常遇到的一些棘手的问题。如拷贝隐含或系统属性的文件(特别是光盘中的隐含文件)、在任意DOS版本或在windows中更改子目录的名称。

在任意DOS 版本中使用带空格的目录名等等。这些问题仅靠操作系统或常用的工具软件往往很难凑效。我们可以利用C++语言的强大功能来编写一些小程序,能够很顺利地解决这些问题。

一、拷贝隐含或系统属性的文件
使用操作系统提供的拷贝命令不能拷贝隐含或系统属性的文件,因为在拷贝过程中系统会提示“File not found”。下面的小程序可以解决这个问题。

复制

// copyfile.c  # include $#@60; stdio.h $#@62;  # include $#@60; stdlib.h $#@62;  main(int argc,char *argv[])  { if(argc$#@60; 3)   {  printf("\n用法: COPYFILE  $#@60; 源文件名 $#@62; $#@60; 目标文件名 $#@62;\n");  exit(1);  }  copy(argv[1],argv[2]);  }   copy(char * file1,char * file2)  {  char ch;  FILE * fp1,* fp2;   if((fp1=fopen(file1,"rb"))==NULL)  {   printf("\nCant open file %s",file1);   fclose(fp1);  return;  }  if((fp2=fopen(file2,"wb"))==NULL)  {   printf("\nCant open file %s",file2);   fclose(fp1);  return;  }  ch=fgetc(fp1);  while (!feof(fp1))  {   fputc(ch,fp2);  ch=fgetc(fp1);  }  fclose(fp1);  fclose(fp2);  return;  }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

  • 22.

  • 23.

  • 24.

  • 25.

  • 26.

  • 27.

  • 28.

  • 29.

  • 30.

  • 31.

  • 32.

  • 33.

  • 34.

  • 35.

  • 36.

  • 37.

  • 38.

  • 39.

  • 40.

二、在任意DOS版本或windows中更改子目录的名称

DOS 只是在 6. x 版本中提供了更改子录名的程序。 在windows中改目录名操作又很繁琐。 下面的小程序可以很简单地更改任何一级子目录的名称,而且也可以用来更改文件的名称

复制

// copyfile.c  # include $#@60; stdio.h $#@62;  # include $#@60; stdlib.h $#@62;  main(int argc,char *argv[])  { if(argc$#@60; 3)   {  printf("\n用法: COPYFILE  $#@60; 源文件名 $#@62; $#@60; 目标文件名 $#@62;\n");  exit(1);  }  copy(argv[1],argv[2]);  }   copy(char * file1,char * file2)  {  char ch;  FILE * fp1,* fp2;   if((fp1=fopen(file1,"rb"))==NULL)  {   printf("\nCant open file %s",file1);   fclose(fp1);  return;  }  if((fp2=fopen(file2,"wb"))==NULL)  {   printf("\nCant open file %s",file2);   fclose(fp1);  return;  }  ch=fgetc(fp1);  while (!feof(fp1))  {   fputc(ch,fp2);  ch=fgetc(fp1);  }  fclose(fp1);  fclose(fp2);  return;  }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

  • 22.

  • 23.

  • 24.

  • 25.

  • 26.

  • 27.

  • 28.

  • 29.

  • 30.

  • 31.

  • 32.

  • 33.

  • 34.

  • 35.

  • 36.

  • 37.

  • 38.

  • 39.

  • 40.

三、使用带空格的目录名

系统是用空格来区分输入的DOS 命令所带的参数,同样使用DOS的 MD、CD、RD等命令也无法使用含有空格的目录名。但是在用CHKDSK命令对磁盘进行检查时,对含有空格的子目录名并不给出错误信息。这说明在DOS 中含有空格的目录名是有存在的合法性的。因为DOS 中的命令无法使用含空格的目录名,所以可以起到一定的加密作用。下面的程序介绍如何利用C++语言来建立、进入和删除含有空格的子目录。

复制

// copyfile.c  # include $#@60; stdio.h $#@62;  # include $#@60; stdlib.h $#@62;  main(int argc,char *argv[])  { if(argc$#@60; 3)   {  printf("\n用法: COPYFILE  $#@60; 源文件名 $#@62; $#@60; 目标文件名 $#@62;\n");  exit(1);  }  copy(argv[1],argv[2]);  }   copy(char * file1,char * file2)  {  char ch;  FILE * fp1,* fp2;   if((fp1=fopen(file1,"rb"))==NULL)  {   printf("\nCant open file %s",file1);   fclose(fp1);  return;  }  if((fp2=fopen(file2,"wb"))==NULL)  {   printf("\nCant open file %s",file2);   fclose(fp1);  return;  }  ch=fgetc(fp1);  while (!feof(fp1))  {   fputc(ch,fp2);  ch=fgetc(fp1);  }  fclose(fp1);  fclose(fp2);  return;  }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

  • 22.

  • 23.

  • 24.

  • 25.

  • 26.

  • 27.

  • 28.

  • 29.

  • 30.

  • 31.

  • 32.

  • 33.

  • 34.

  • 35.

  • 36.

  • 37.

  • 38.

  • 39.

  • 40.

【编辑推荐】

  1. 如何正确编写C++项目开发编写项目计划书

  2. 对C++库函数进行学习探索总结笔记

  3. 深度演示C++语言的种种高安全性

  4. 详细介绍如何准确无误的编写C++语言

  5. 深度演示C++语言的种种高安全性

18    2010-01-14 18:07:30    C++语言