<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[参数传入]C语言程序设计技巧]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Wed, 18 Apr 2007 01:03:41 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	在许多应用软件运行时都带有命令行参数，其实这些命令行参数在C语言编写的程序中也可以实现，灵活地运用命令行参数进行处理可以有效地提高程序的运行效率，收到事半功倍的效果。<br/><br/>　　C语言中有关命令行参数涉及到程序的主函数main(int argc,char *argv[]这样两个参数，其中，int argc表示命令行参数的个数(包括可执行程序名本身)，char *argv[]表示每个参数的具体内容，argv[0]为命令行中可执行程序名本身，argv[1]为命令行中第二个参数的内容，依次类推。如下例输出命令行参数的个数及参数的内容：<br/><br/>main (int argc,char *argv[]，<br/>&#123;int I;<br/>　printf("&#92;n命令行中可执行文件名为：％s",argv[0]);<br/>　printf("&#92;n总共有％d个参数：",argc);<br/>　I=0;<br/>　while(argc>=1)<br/>　&#123;printf(″％s 　",argv[I＋＋]);<br/>　　argc－－;&#125;<br/>&#125; <br/><br/>　　命令行参数用的最多还是在诸如DIR A：等之类带有盘符、路径或文件名这样的命令行中，所以说灵活处理这一类参数才能有效地提高程序的运行效果。譬如DIR命令，其后可以是盘符，可以是路径，也可以是文件名，如何区分这一参数呢?请看下例(此程序模拟DIR命令，程序要求在命令行输入一个参数：盘符或路径或文件名，若无参数或参数多于一个都将取默认的参数“*.*”)。<br/><br/>&#92;*－－－－－－－－－－－－－－－－－－－－<br/>功能：模拟DIR命令进行处理命令行参数<br/>－－－－－－－－－－－－－－－－－－－－*/<br/>＃include<br/>＃include<br/>＃include<br/>＃inchlude<br/>int j,num=0;<br/>char ss[20],path[50],path2[50];<br/>void main (int argc,char *argv[])<br/>&#123;<br/>　struct ffblk f;<br/>　int done;<br/>　if(argc==2) 　/*取命令行参数到数组中*/ <br/>　　strcpy(ss,argv[1]);<br/>　else<br/>　　strcpy(ss,″*.*″); /*给数组赋值缺省参数*/<br/>　　if (((ss[strlen(ss)－1]==′&#92;&#92;′&#124;&#124;（（ss[strlen(ss)－1]==':'))<br/>　　　strcat(ss,″*.*″); /*若参数为路径或盘符，则加上″*.*″　*/<br/>　　getcwd(path1,50); /*取当前路径*/<br/>　　if (chdir(ss)==0) /*判断参数是否为路径*/<br/>　　　　strcat(ss,"&#92;&#92;*.*"); /*若路径末没有带"&#92;"，则加上"*.*" */ <br/><br/>　chdir(path1); /*恢复原来路径*/<br/>　strcpy(path2,ss);<br/>　for(j=strlen(path2);j>0;j－－)/*提取参数中的路径到path2 */<br/>　　&#123;if((path2[j]=='&#92;&#92;'))&#124;&#124;(path2[j]==':'))&#123;<br/>　　　path2[j＋1]='&#92;0';<br/>　　　goto senull;&#125;<br/>　　&#125;<br/>　path2[0]='&#92;0';<br/>　senull:<br/>　if(strlen(path2)==0) 　/* 若给出的参数中没带路径，则取当前路径*/<br/>　　strcpy(path2,path1);<br/>　printf("&#92;n**模拟DIR**&#92;n 命令目录路径％s",path2);<br/>　done=findfirst(ss,＆f,55); /*查找第一个配匹的文件*/<br/>　j=1;<br/>　while(!done)<br/>　&#123;if (f.ff_attrib!=0x10) /* 若文件属性不是目录 */<br/>　　　printf("&#92;n ％15s ％20ld",f.ff_name,f.ff_fsize);<br/>　　else<br/>　　　printf("&#92;n ＆11s ",f.ff_name);<br/>　　num＋＋;<br/>　　j＋＋;<br/>　　if(j==23)<br/>　　　printf("&#92;n －－－－－－－－More (按任意键继续)－－－－");<br/>　　getch();<br/>　　j=0;<br/>　　printf(″&#92;n (目录路径％s)″,path2);&#125;<br/>　　done=findnext(＆f); /*查找下一个配匹的文件*/<br/>　&#125;<br/>printf(″&#92;n 当前目录中总共有％d个文件.&#92;n″,num);
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [参数传入]C语言程序设计技巧]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>