基于命令行的文件名–的程序设计

这个程序所用的文件名可以直接从命令行给出,比如生成了a.exe文件,这么:

a.exeb.txt

执行这个命令行,程序都会统计b.txt.文件中的字母数目。

学习编程如同学物理,最重要的就是自己独立思索,像这个程序,完全可以通过通读我上面写的内容自己看出其运行机制。千万不要做一个不会思索的人。

****************************************************

如果生成的可执行文件名为a.exe,这么:

a.exeabcdefht

其中的abc和def以及ht就是传到a.exe的命令行参数,它们都是字符串,要想在程序中使用这种参数,就必须把main函数的参数列表写成如下方式:

intmain(intargc,char*argv[])

这样,argc就是参数的个数(程序路径自身也是一个参数),所以对于前面的事例而言,argc=4,argv字符表针字段中就保存了指向各个参数字符串的表针(程序路径是第一个参数,由argv[0]指向),所以对于前面的事例而言,

argv[0]=”a.exe”

argv[1]=”abc”

argv[2]=”def”

argv[3]=”ht”

一个示例bat命令参数linux获取当前时间,说明怎样使用那些参数:

//—————————————————————————

#include

intmain(intargc,char*argv[])

inti;

for(i=0;i

puts(argv[i]);

return0;

//—————————————————————————

假如这个程序生成的可执行文件名为a.exebat命令参数,并以开头的命令行执行这个程序,这么会输出:

a.exe

abc

def

ht

另外red hat linux,main()函数可以有第三个参数,也是一个字符表针字段,这个字段中保存了指向保存当前系统中的环境变量字符串的表针,比如以下程序可以输出系统中定义的环境变量:

//—————————————————————————

#include

intmain(intargc,char*argv[],char*env[])

inti;

for(i=0;env[i];i++){

puts(env[i]);

return0;

//—————————————————————————

有关程序参数的详尽说明,请参考一下加拿大的c语言教材和linux系统编程方面的教材

Tagged: 命令行