c语言命令行参数

拜托各位C的高手了,讲解下C里的命令行参数的作用以及如何运用吧。
希望详细些,清晰些,我完全是新接触。
最好有个易懂的例子。

困扰好久了,拜谢~~(回答后必追加)
统计英文字母数。

#include <stdio.h>
#include <stdlib.h>
FILE *fin;

void main(int argc, char *argv[]){
char namein[64];
int gb;
int NN=0;

if (argc < 2) {
printf("\007Usage: %s filename\n", argv[0]);exit(0);
};
strcpy(namein,argv[1]);
if ( ( fin = fopen(namein,"r")) == NULL){
printf("Can not open %s\n",namein); exit(0);
};

while(1){
gb=fgetc(fin);
if (gb==EOF) break;
if (gb >= 'a' && gb <= 'z' ) NN=NN+1;
if (gb >= 'A' && gb <= 'Z' ) NN=NN+1;
}
fclose(fin);
printf("%d letters\n",NN);

}

请问这个例子的命令行参数有什么作用呢?

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

a.exe b.txt

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

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

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

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

a.exe abc def ht

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

int main(int argc, char* argv[])

这样,argc就是参数的个数(程序路径自身也是一个参数),所以对于上面的例子而言,argc=4,argv字符指针数组中就保存了指向各个参数字符串的指针(程序路径是第一个参数,由argv[0]指向),所以对于上面的例子而言,
argv[0]="a.exe"
argv[1]="abc"
argv[2]="def"
argv[3]="ht"

一个示例,说明如何使用这些参数:

//---------------------------------------------------------------------------

#include <stdio.h>

int main(int argc, char* argv[])
{
int i;
for (i = 0; i<argc; i++) {
puts(argv[i]);
}
return 0;
}
//---------------------------------------------------------------------------

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

a.exe
abc
def
ht

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

//---------------------------------------------------------------------------

#include <stdio.h>

int main(int argc, char* argv[],char *env[])
{
int i;

for (i = 0; env[i]; i++) {
puts(env[i]);
}
return 0;
}
//---------------------------------------------------------------------------

有关程序参数的详细说明,请参考一下国外的C语言教材和LINUX系统编程方面的教材
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-21
if (argc < 2) {
printf("\007Usage: %s filename\n", argv[0]);exit(0);
}; //如果命令行参数有一个或者两个则将命令行的第一个参数输出
strcpy(namein,argv[1]);//将命令行第二个参数的内容赋给namein
if ( ( fin = fopen(namein,"r")) == NULL)//打开该文件
{
printf("Can not open %s\n",namein); exit(0);
};

什么是c的命令行参数??
所谓c语言的命令行参数,主要指的main函数的参数,main函数有操作系统来调用,用户通过操作系统来运行软件,因此可以传递参数。比如 int main (int argc, char *argv[]) \/\/这是控制台上的main函数其中argc用于说明传递的命令行参数的个数,argv是一个char *的指针数组,每1个元素代表一个参数。其中...

命令行参数是什么?
argc 是命令行参数总个数,含程序名 和 位置参数。argv[0] -- 程序名 argv[1] -- 参数一 argv[2] --参数二 argv[n] -- 参数n 例如 命令行:abc.exe 123 xyz 56.789 main 获得:程序名abc.exe ,参数1=“123” 参数2=“xyz” 参数3=56.789 argc 为 4 问题三:C语言中的命令行...

C语言命令行参数
argc: 代表启动程序时,命令行参数的个数。C和C++语言规定,可执行程序程序本身的文件名,也算是一个命令行参数,因此,argc的值至少是1.argv[]:指针数组,其中的每个元素都是一个char* 类型的指针,该指针指向一个字符串,这个字符串里就存放着命令行参数。例如,argv[0]指向的字符串就是第一个命...

c语言接收命令行参数
c语言如果想接收命令行参数,则main()函数要写成如下形式:int main( int argc, char *argv[] )说明:int argc 表示参数个数,包括执行程序名,如果没有参数,该值为1 char *argv[] 表示参数列表,每个参数都是一个字符串。argv[0]是执行程序名 参考代码:include <stdio.h>int main( int a...

c语言中关于命令行参数的求教
int main(int args, char** argv)args是命令行参数个数,本例中为3 后面argv[0]是命令本身 argv[1]是-2 argv[2]是文件名

请问C语言里面 什么是命令行 和 命令行参数呢?好难理解,请帮忙说的形...
命令行就是在windows命令行里面调用你写的程序,就像你在命令行敲calc.exe运行计算器一样。命令行参数就是命令行后面跟的参数,这样就可以给程序传入参了。命令行参数实际上就是main函数的参数。

c语言中-k是什么意思
在C语言中,-k是一个非常重要的命令行参数。它通常用来定义一个整数或字符常量的值。在编译时,-k会被传递给编译器,告诉它在编译代码时使用该常量值。这个参数通常在代码中使用了许多常量的情况下非常有用,它可以将代码中的常量定义放在一个文件中,然后在编译时用-k参数将其传递给编译器进行处理。

C语言实现命令行窗口
输入可执行程序文件名 后面带上你需要的参数 按Enter键 就可以了。cmd命令:如你的可执行程序在D:\/\/CP\/\/debug\/aa.exe,需要在命令行窗口输入d:按Enter键进入D盘:cd CP\/debug按Enter键进入D盘中CP目录debug子目录中,输入aa.exe 2 3 按Enter键运行你的程序 结果就会出现:2.000000 to the 3....

计算机C语言中的命令行参数怎么用呢?
怎样使用命令行参数 原文:C语言学习零碎整理(6):怎样使用命令行参数 如:include main(int argc, char *argv[] ){ int i;for(i = 1;i < argc; i++ )printf("%s%s",argv[i],(i < argc - 1) ? " " :"");printf("\\n");return 0;} 对这个程序进行编译和连接,生成可执行文件...

c语言命令行参数如何运行?
1、打开集成开发工具(如vc6.0、C-Free 5)。2、新建一个文件test.c,文件名因人而异。3、路径我放到了d:\\test下,路径也可以随意。4、编辑源程序。并进行编译连接。5、在存储经过编译连接的test.exe的文件夹中新建一个记事本文件内容输入CMD,并用另存为更名为a.bat。6、双击a.bat,打开命...

相似回答