命令行函数c语言,c语言命令语句

C语言中的命令行是什么,他有什么作用.~~

命令行是 是一行命令,包括程序名和位置参数。

专注于为中小企业提供网站建设、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业康平免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

例如:

copy a.txt b.txt

copy 是程序名,a.txt 是位置参数1,b.txt 是位置参数2

程序做复制 a.txt 到 b.txt去。

C语言main()函数可以取得程序名和位置参数:

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

}

argc -- 程序名 加 位置参数 的总个数

argv[0] -- 含C可执行程序名

argv[1] -- 位置参数1

argv[2] -- 位置参数2

....

argv[n] -- 位置参数n

不必通过输入语句,命令行参数可以传入C 程序。

例如计算矩形面积:

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

float w,h;

if (argc 3){

printf("Usage:%s w h\n",argv[0]);

printf("for example: %s 3.2 4.5\n",argv[0]);

exit(0);

}

sscanf(argv[1],"%f",w);

sscanf(argv[2],"%f",h);

printf("area = %f\m",w*h);

}

命令行打入:

程序名 宽 高

输出矩形面积

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\n",argv[i]);

}

return 0;

}

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

sample para1 para2 s.txt 5 "hello world"

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

输出结果:

sample

para1

para2

s.txt

5

hello world

扩展资料:

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

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

int main(int argc,char **argv)

程序:

#includestdio.h

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

{

int i;

for(i=0;iargc;i++)

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

return 0;

}

c语言如何调用命令行并且是以管理员身份运行的命令行

这里要看具体情况,你最好能贴出具体的运行代码。

一般来说,如果你本身是一个控制台程序,那么zhuhuaizhong所说是一个合理的办法。

但如果本身是一个windows窗口程序,通过抛出方式运行一个命令行,那么应该采用如下几个办法之一:

1.

使用cmd的runas命令:runas

/user:user_name

program.exe

2.

创建外部命令行函数提权,要使用以下几个函数之一(其它如winexec等方式无法实现),它们都有runas类似功能:

CreateProcess

CreateProcessAsUser

CreateProcessWithLogonW

CreateProcessWithTokenW

如果是在win7下,CreateProcessWithLogonW是推荐使用的方式,具体代码请根据函数名搜索,不在这里粘贴了。

C语言程序的命令行参数

在许多应用软件运行时都带有命令行参数,其实这些命令行参数在C语言编写的程序中也可以实现,灵活地运用命令行参数进行处理可以有效地提高程序的运行效率,收到事半功倍的效果。

C语言中有关命令行参数涉及到程序的主函数main(int argc,char *argv[]这样两个参数,其中,int argc表示命令行参数的个数(包括可执行程序名本身),char *argv[]表示每个参数的具体内容,argv[0]为命令行中可执行程序名本身,argv[1]为命令行中第二个参数的内容,依次类推。如下例输出命令行参数的个数及参数的内容:

main (int argc,char *argv[],

{int I;

printf(\n命令行中可执行文件名为:%s,argv[0]);

printf(\n总共有%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 stdio.h

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

{

if(argc2)

{

printf("you must input args!");

return 0;

}

if(strcmp(argv[1],"help")==0)

{

printf("此程序参数如下:\n");

printf("-c 提示是否确定。\n");

printf("-d 跳过警告,直接删除。\n");

printf("exit为退出。");

return 0;

}

else if(strcmp(argv[1],"-c")==0)

{

//此处省略N行你的代码

}

return 0;

}

如果你编译出来的程序名字叫 test.exe 那么在命令行下输入 test.ext help后就会打印

此程序参数如下:

-c 提示是否确定。

-d 跳过警告,直接删除。

exit为退出。


网站名称:命令行函数c语言,c语言命令语句
当前链接:http://ybzwz.com/article/dsscccc.html