📄 vcc4.htm
字号:
<html>
<head>
<title>c++系列</title>
<meta content="text/html; charset=gb2312" http-equiv=Content-Type>
</head>
<p align="center"><script src="../../1.js"></script></a>
<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center>
<table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
<tbody>
<tr>
<td width=200 height="59">
</tr>
</tbody>
</table>
<table border=1 bordercolordark=#ffffff bordercolorlight=#ffffff cellpadding=0
cellspacing=0 width=685 align="center" height="70">
<tbody>
<tr>
<td bgcolor=#F9D23C height=14>
<div align=center class=H1> <b><strong><span class="unnamed1">利用C语言小程序来解决大问题</span></strong></b></font></div>
</td>
</tr>
<tr valign=top>
<td class=H1 height=212>
<p align="center"><font color="#FF0000"><strong> </span></strong></font></p>
<p> <span class="unnamed1">我们知道C语言的功能非常强大,
很适合编写系统软件。利用它我们可以很容易地解决经常遇到的一些棘手的问题,如拷贝隐含或系统属性的文件(特别是光盘中的隐含文件)、在任意DOS版本或在windows中更改子目录的名称、在任意DOS
版本中使用带空格的目录名等等。</span>这些问题仅靠操作系统或常用的工具软件往往很难凑效。我们可以利用C语言的强大功能来编写一些小程序,能够很顺利地解决这些问题。
<br>
<br>
一、拷贝隐含或系统属性的文件 <br>
<br>
使用操作系统提供的拷贝命令不能拷贝隐含或系统属性的文件,因为在拷贝过程中系统会提示“File not found”。下面的小程序可以解决这个问题。
<br>
<br>
// copyfile.c<br>
# include < stdio.h ><br>
# include < stdlib.h ><br>
main(int argc,char *argv[])<br>
{ if(argc< 3) <br>
{<br>
printf("\n用法: COPYFILE<br>
< 源文件名 > < 目标文件名 >\n");<br>
exit(1);<br>
}<br>
copy(argv[1],argv[2]);<br>
}<br>
<br>
copy(char * file1,char * file2)<br>
{<br>
char ch;<br>
FILE * fp1,* fp2;<br>
<br>
if((fp1=fopen(file1,"rb"))==NULL)<br>
{ <br>
printf("\nCan't open file %s",file1); <br>
fclose(fp1);<br>
return;<br>
}<br>
if((fp2=fopen(file2,"wb"))==NULL)<br>
{ <br>
printf("\nCan't open file %s",file2); <br>
fclose(fp1);<br>
return;<br>
}<br>
<br>
ch=fgetc(fp1);<br>
while (!feof(fp1))<br>
{ <br>
fputc(ch,fp2);<br>
ch=fgetc(fp1);<br>
}<br>
fclose(fp1);<br>
fclose(fp2);<br>
return;<br>
}<br>
<br>
二、在任意DOS版本或windows中更改子目录的名称 <br>
DOS 只是在 6. x 版本中提供了更改子录名的程序。 在windows中改目录名操作又很繁琐。 下面的小程序可以很简单地更改任何一级子目录的名称,而且也可以用来更改文件的名称。
<br>
<br>
# include "stdio.h"<br>
main(int argc,char *argv[])<br>
{ int n;<br>
if(argc< 3)<br>
{ <br>
printf("Required parameter missing\n");<br>
exit(0);<br>
}<br>
n=rename(argv[1],argv[2]);<br>
if(n==-1)<br>
{<br>
printf("Duplicate name or name not found\n");<br>
exit(0);<br>
}<br>
}<br>
<br>
三、使用带空格的目录名 <br>
众所周知,在DOS 中是不允许在文件名或子目录名中包含空格的。这是因为系统是用空格来区分输入的DOS 命令所带的参数,同样使用DOS的
MD、CD、RD等命令也无法使用含有空格的目录名。但是在用CHKDSK命令对磁盘进行检查时,对含有空格的子目录名并不给出错误信息。这说明在DOS
中含有空格的目录名是有存在的合法性的。因为DOS 中的命令无法使用含空格的目录名,所以可以起到一定的加密作用。下面的程序介绍如何利用C语言来建立、进入和删除含有空格的子目录。
<br>
<br>
1、建立带空格的子目录 <br>
<br>
/* 文件名: mddir.c */<br>
#include < dir.h ><br>
main(int argc,char * argv[])<br>
{ if (argc==2) <br>
{if(mkdir(argv[1])) perror("Error");}<br>
else printf("Usage : MDDIR + dirname\n");<br>
return (0);<br>
}<br>
<br>
在程序使用中注意要用双引号将目录名括起来,如果目录名中不含有空格可将双引号省略。例如: mddir "a test"
。以下程序使用方法相同 <br>
2、进入带空格的子目录 <br>
<br>
/* 文件名: cddir.c */<br>
#include < dir.h ><br>
main(int argc,char * argv[])<br>
{ if(argc==2) <br>
{if(chdir(argv[1])) perror("Error");}<br>
else printf("Usage : CDDIR + dirname\n");<br>
return 0;<br>
}<br>
<br>
3、删除带空格的子目录 <br>
/* 文件名: rddir.c */<br>
#include < dir.h ><br>
main(int argc,char * argv[])<br>
{ if (argc==2) <br>
{if(rmdir(argv[1])) perror("Error");}<br>
else printf("Usage : RDDIR + dirname\n");<br>
return 0;<br>
}<br>
<br>
以上程序均用 Turbo c 2.0 调试通过,注意以上程序的文件名不要与DOS中的有关命令相同,以免发生冲突。</span></font></p>
<p> <span class="unnamed1">张广乐·计算机世界日报 </span></font>
</td>
</tr>
</tbody>
</table>
</div>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -