导航:首页 > 程序命令 > 带参数的c命令

带参数的c命令

发布时间:2023-01-20 03:04:26

⑴ C语言程序的命令行参数

在许多应用软件运行时都带有命令行参数,其实这些命令行参数在C语言编写的程序中也可以实现,灵活地运用命令行参数进行处理可以有效地提高程序的运行效率,收到事半功倍的效果。
C语言中有关命令行参数涉及到程序的主函数main(int argc,char *argv[]这样两个参数,其中,int argc表示命令行参数的个数(包括可执行程序名本身),char *argv[]表示每个参数的具体内容,argv[0]为命令行中可执行程序名本身,argv[1]为命令行中第二个参数的内容,依次类推。如下例输出命令行参数的个数及参数的内容:
main (int argc,char *argv[],
{int I;
printf( 命令行中可执行文件名为:%s,argv[0]);
printf( 总共有%d个参数:,argc);
I=0;
while(argc>=1)
{printf(″%s ,argv[I++]);
argc--;}
}
命令行参数用的最多还是在诸如DIR A:等之类带有盘符、路径或文件名这样的命令行中,所以说灵活处理这一类参数才能有效地提高程序的运行效果。譬如DIR命令,其后可以是盘符,可以是路径,也可以是文件名,如何区分这一参数呢?请看下例(此程序模拟DIR命令,程序要求在命令行输入一个参数:盘符或路径或文件名,若无参数或参数多于一个都将取默认的参数“*.*”)。
*--------------------
功能:模拟DIR命令进行处理命令行参数
--------------------*/
#include
#include
#include
#inchlude
int j,num=0;
char ss[20],path[50],path2[50];
void main (int argc,char *argv[])
{
struct ffblk f;
int done;
if(argc==2) /*取命令行参数到数组中*/
strcpy(ss,argv[1]);
else
strcpy(ss,″*.*″); /*给数组赋值缺省参数*/
if (((ss[strlen(ss)-1]==′\′||((ss[strlen(ss)-1]==':'))
strcat(ss,″*.*″); /*若参数为路径或盘符,则加上″*.*″*/
getcwd(path1,50); /*取当前路径*/
if (chdir(ss)==0) /*判断参数是否为路径*/
strcat(ss,\*.*); /*若路径末没有带,则加上*.* */
chdir(path1); /*恢复原来路径*/
strcpy(path2,ss);

⑵ 关于C语言的带参数命令的运行。

/*加个#include<stdlib.h>
然后fopen后面第一个参数不用加双引号,因为argv[]本身就是字符串,再加个双引号就不伦不类了
修改后如下*/
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[])
{
FILE *fp1,*fp2;
char ch;
if((fp1=fopen(argv[1],"r"))==NULL){
printf("File open error! \n");
exit(0);
}
if((fp2=fopen(argv[2],"w"))==NULL){
printf("File open error! \n");
exit(0);
}
while((ch=fgetc(fp1))!=EOF){
if(ch>='a'&&ch<='z')
ch=ch-32;
fputc(ch,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
//我验证了一下可以了

⑶ 带参数的C#命令行或者界面应用程序的调用

可以实现的,你应该有发现C#的main函数本身就是带参数的,static
void
Main(string[]
args);你在程序中是可以利用这个参数的,比如:static
void
Main(string[]
args){
Console.WriteLine(args.Length);
if(args.Length>0)
{
Console.WriteLine(args[0]);
}}
然后你可以在cmd下面运行这个程序,假设你的程序编译后为c:\text.exe
你就可以直接开始,运行cmd,然后c:\text.exe
test1
test2这样的方式来运行,注意参数之间是以空格来分格的,就是你的test1
test2中间有个空格就会当做2个string。
你要是想在其他程序中来调用这个编译好的程序的话,各种语言有自己不同的调用方式,比如C#调用的话可以利用Process类,VBA的话是VBA.CreateObject("wscript.shell")然后调用run("c:\text.exe"_test1_test2)之类的。

⑷ c语言命令行参数如何运行

1、命令行参数是保存在argv[]里的。argc只是说参数的个数。命令行参数一般是从argv[1]开始(包括argv[1])argv[0]是程序的名字。在输命令的时候,命令行参数之间用空格隔开。
2、比如:

#include<stdio.h>
intmain(intargc,char*argv[])
{
if(argc<2)
{
printf("youmustinputargs!");
return0;
}
if(strcmp(argv[1],"help")==0)
{
printf("此程序参数如下: ");
printf("-c提示是否确定。 ");
printf("-d跳过警告,直接删除。 ");
printf("exit为退出。");
return0;
}
elseif(strcmp(argv[1],"-c")==0)
{
//此处省略N行你的代码
}
return0;
}

如果编译出来的程序名字叫 test.exe,那么在命令行下输入 test.ext help后就会打印
此程序参数如下:
-c 提示是否确定。
-d 跳过警告,直接删除。
exit为退出。

⑸ 如何用C语言实现带参数的dos命令

需要使用带参数的主函数来实现。

带参数的主函数格式为:

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

其中argc为命令行参数的个数,包括可执行文件名。

argv为一个字符串数组,共计有argc个元素,依次为命令行输入的各个参数。其中argv[0]为执行的文件名。

下面的程序可以打印出文件名及参数。

#include<stdio.h>
intmain(intargc,constchar*argv[])//定义带参数的主函数
{
inti;
printf("执行文件名为:%s ",argv[0]);//打印可执行文件名
printf("有%d个参数: ",argc-1);//打印其它参数个数。
for(i=1;i<argc;i++)
{
printf("参数%d=%s ",i,argv[i]);//打印所有参数值。
}

return0;
}

输入:

test.exep1 p2 333 44

输出:

执行文件名为:test.exe

有4个参数:

参数1 = p1

参数2 = p2

参数3 = 333

参数4 = 44

⑹ C语言命令行参数

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

{

.....

}

argc: 代表启动程序时,命令行参数的个数。C和C++语言规定,可执行程序程序本身的文件名,也算是一个命令行参数,因此,argc的值至少是1.

argv[]:指针数组,其中的每个元素都是一个char* 类型的指针,该指针指向一个字符串,这个字符串里就存放着命令行参数。

例如,argv[0]指向的字符串就是第一个命令行参数,即可执行程序的文件名,argv[1]指向第二个命令行参数,argv[2]指向第三个命令行参数....。

#include <stdio.h>

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

{

int i;

for ( i = 0;i < argc; i++)

{

printf("%s ",argv[i]);

}

return 0;

}

windows下,将上面的程序编译成sample.exe,然后在控制台窗口敲:

sample para1 para2 s.txt 5 "hello world"

上面有6个参数,双引号为了包含空格作为一个参数。

输出结果:

sample

para1

para2

s.txt

5

hello world

(6)带参数的c命令扩展阅读:

main函数通常含有参数argc和argv,写法通常如下:

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

int main(int argc,char **argv)

程序:

#include<stdio.h>

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

{

int i;

for(i=0;i<argc;i++)

printf("第 %d 个参数是 %s ",i+1,argv[i]);

return 0;

}

⑺ c语言编程中如何实现命令参数

在命令行参数中,程序名本身也算是一个,而且是argv[0],如果你用一个参数比如1调用这个程序,你的第一个参数就表示是argv[1],
然后有一个空串argv[2]是null结束整个命令行,空串结束是一种程序调用的机制,作用就是为了使得程序有一种便捷的方式计算整个命令行参数的个数和遍历这个字符串数组
对于你的程序aaa
1
argv[0]
=
"aaa";
argv[1]
=
"1";
argv[2]
=
NULL;
对于你的程序aaa
b
argv[0]
=
"aaa";
argv[1]
=
"b";
argv[2]
=
NULL;
第二个程序中
if
(argv[2]
==
"d")
有错误
参数是以字符串传入程序的,你应该strcmp(argv[1],"b")
==
0而且你的参数表示位置有问题因该是argv[1](它是第一个参数)
第一个程序中if
(argv[2]
==
"1")
也是错误的
最后在简要的说一下,如果你要判断当前程序的命令行的个数是否为某一值,例如你想判断是否有2个参数被传入aaa程序,可以这么写
if
(argc
==
3)
{
/*...*/}
/*不好意思第一次回答的时候argc
==
2记算错了,对于两个参数的个数记数因该是
程序名
参数1
参数2
(null)位置是0,1,2,3
*/
有很多初学者对于参数的个数计算方面往往比较疑惑,曾经我也是

⑻ 关于C语言的带参数命令的运行。

if((fp1=fopen(argv[1],"r"))==NULL){
printf("File open error! \n");
exit(0);
}
if((fp2=fopen(argv[2],"w"))==NULL){
printf("File open error! \n");
exit(0);
}

阅读全文

与带参数的c命令相关的资料

热点内容
51单片机程序单步视频 浏览:239
家庭宽带如何连接服务器 浏览:117
汽车高压泵解压 浏览:770
上门正骨用什么app 浏览:758
安卓为什么免费使用 浏览:397
加密货币都有哪些平台 浏览:625
python和matlab难度 浏览:388
python爬虫很难学么 浏览:572
小米解压积木可以组成什么呢 浏览:816
为什么滴滴出行app还能用 浏览:564
怎么升级手机android 浏览:923
php权威编程pdf 浏览:994
扣扣加密技巧 浏览:720
苹果如何创建服务器错误 浏览:497
软考初级程序员大题分值 浏览:475
js压缩视频文件 浏览:580
linux如何通过命令创建文件 浏览:991
应用加密app还能访问应用嘛 浏览:435
安卓怎么用支付宝交违章罚款 浏览:667
php面向对象的程序设计 浏览:506