基于命令行的文件名–的程序设计
这个程序所用的文件名可以直接从命令行给出,比如生成了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系统编程方面的教材