浙江建设局网站,网站开发过程和里程碑,火锅料网站方案怎么做,安徽水安建设集团网站在图形界面普及之前都使用命令行界面。DOS和UNIX就是例子。Linux终端提供类UNIX命令行环境。 命令行#xff08;command line#xff09;是在命令行环境中#xff0c;用户为运行程序输入命令的行。命令行参数#xff08;command-line argument#xff09;是同一行的附加项… 在图形界面普及之前都使用命令行界面。DOS和UNIX就是例子。Linux终端提供类UNIX命令行环境。 命令行command line是在命令行环境中用户为运行程序输入命令的行。命令行参数command-line argument是同一行的附加项。
demo.exe hello world执行程序时可以从命令行传值给 C 程序。这些值被称为命令行参数它们对程序很重要特别是当想从外部控制程序而不是在代码内对这些值进行硬编码时就显得尤为重要了。
命令行参数是使用 main() 函数参数来处理的其中argc 是指传入参数的个数argv[] 是一个指针数组指向传递给程序的每个参数。下面是一个简单的实例检查命令行是否有提供参数并根据参数执行相应的动作
#include stdio.hint main( int argc, char *argv[] )
{if( argc 2 ){printf(The argument supplied is %s\n, argv[1]);}else if( argc 2 ){printf(Too many arguments supplied.\n);}else{printf(One argument expected.\n);}
}使用一个参数编译并执行上面的代码它会产生下列结果
$./a.out testing
The argument supplied is testing使用两个参数编译并执行上面的代码它会产生下列结果
$./a.out testing1 testing2
Too many arguments supplied.不传任何参数编译并执行上面的代码它会产生下列结果
$./a.out
One argument expected应当指出的是argv[0] 存储程序的名称argv[1] 是一个指向第一个命令行参数的指针*argv[n] 是最后一个参数。如果没有提供任何参数argc 将为 1否则如果传递了一个参数argc 将被设置为 2。
多个命令行参数之间用空格分隔但是如果参数本身带有空格那么传递参数的时候应把参数放置在双引号 “” 或单引号 ‘’ 内部。让我们重新编写上面的实例有一个空间那么你可以通过这样的观点把它们放在双引号或单引号“”。让我们重新编写上面的实例向程序传递一个放置在双引号内部的命令行参数
#include stdio.hint main( int argc, char *argv[] )
{printf(Program name %s\n, argv[0]);if( argc 2 ){printf(The argument supplied is %s\n, argv[1]);}else if( argc 2 ){printf(Too many arguments supplied.\n);}else{printf(One argument expected.\n);}
}使用一个用空格分隔的简单参数参数括在双引号中编译并执行上面的代码它会产生下列结果
$./a.out testing1 testing2Progranm name ./a.out
The argument supplied is testing1 testing2C编译器允许main()没有参数或者有两个参数一些实现允许main()拥有更多参数属于对标准的扩展。main函数有两个参数时第一个参数是命令行中字符串数量。(过去这个int类型参数被称为argc)。系统用空格表示一个字符串的结束和下一个字符串的开始。