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);
};

Morn:极简的C语言命令行解析
在C语言的命令行解析中,`argc`与`argv`是`main`函数的参数,`argc`表示参数个数,`argv`为参数内容数组,从`argv[1]`开始。要寻找的参数标志`flag`必须以字符“-”开头,可以是一个字符或多个字符。返回值是找到的命令参数,形式为字符串。`format`用于指定参数值格式,类似于标准库中的`scanf`...

什么是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语言实现命令行窗口
输入可执行程序文件名 后面带上你需要的参数 按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.0...

在C 语言中使用 getopt 解析命令行短选项 | Linux 中国
在C语言中使用getopt解析命令行短选项,可以使得程序更加灵活,根据用户输入动态调整行为。C程序通常通过`argc`和`argv`来读取命令行参数,其中`argv`是一个指向字符串数组的二级指针,`argc`表示参数数量。通过简单的示例程序,可以实现从命令行读取参数的功能。例如,一个简化版的`cat`命令程序能够显示...

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

C语言命令行参数如何解析?你经常用的终端怎么运行的你说不清楚!_百度...
让我们一起深入探讨。最常见的两种main函数形式是:int main(void) 和 int main(int argc, char *argv[])。后者尤为重要,因为它能接收并处理命令行参数。让我们通过一个例子来理解:当运行一个名为main的程序时,argc表示参数个数,而argv[]则存储每个参数的实际值。然而,这并不是官方的命令参...

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

c语言命令行参数
a.exe abc def ht 其中的abc和def以及ht就是传到a.exe的命令行参数,它们都是字符串,要想在程序中使用这些参数,就必须把main函数的参数列表写成如下形式:int main(int argc, char* argv[])这样,argc就是参数的个数(程序路径自身也是一个参数),所以对于上面的例子而言,argc=4,argv字符指针...

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

相似回答